Merged PR 127: Task1856: DBマイグレーション(タスク一覧取得)

## 概要
[Task1856: DBマイグレーション(タスク一覧取得)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2010-1?workitem=1856)

- 必要なテーブルを作成
  - ユーザーグループテーブル
  - ユーザーグループ所属テーブル
  - ソート条件テーブル
  - チェックアウト権限テーブル

## レビューポイント
- テーブル名は妥当か
- 各カラムの型や制約、コメントは妥当か
  - ユーザーグループ名はNOT NULLでよい?
  - ソート条件のカラム名はNOT NULLでよい? 
- チェック制約を追加したが問題なさそうか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
  - Migrate up /Migrate downでテーブル追加・削除を確認
  - チェック制約で片方のカラムのみ値が入ることを確認(両方値がある or 両方NULLではNG)

## 補足
This commit is contained in:
saito.k 2023-06-02 08:13:33 +00:00
parent 1ced5ef66d
commit 0ca766f309
4 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,14 @@
-- +migrate Up
CREATE TABLE IF NOT EXISTS `user_group` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'ユーザーグループID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT 'アカウントID',
`name` VARCHAR(255) NOT NULL COMMENT 'ユーザーグループ名',
`deleted_at` TIMESTAMP COMMENT '削除時刻',
`created_by` VARCHAR(255) COMMENT '作成者',
`created_at` TIMESTAMP DEFAULT now() COMMENT '作成時刻',
`updated_by` VARCHAR(255) COMMENT '更新者',
`updated_at` TIMESTAMP DEFAULT now() COMMENT '更新時刻'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- +migrate Down
DROP TABLE `user_group`;

View File

@ -0,0 +1,14 @@
-- +migrate Up
CREATE TABLE IF NOT EXISTS `user_group_member` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT '所属ID',
`user_group_id` BIGINT UNSIGNED NOT NULL COMMENT 'ユーザーグループID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT 'ユーザーID',
`deleted_at` TIMESTAMP COMMENT '削除時刻',
`created_by` VARCHAR(255) COMMENT '作成者',
`created_at` TIMESTAMP DEFAULT now() COMMENT '作成時刻',
`updated_by` VARCHAR(255) COMMENT '更新者',
`updated_at` TIMESTAMP DEFAULT now() COMMENT '更新時刻'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- +migrate Down
DROP TABLE `user_group_member`;

View File

@ -0,0 +1,15 @@
-- +migrate Up
CREATE TABLE IF NOT EXISTS `sort_criteria` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'ソート条件ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT 'ユーザーID',
`parameter` VARCHAR(255) NOT NULL COMMENT 'ソート条件の項目',
`direction` VARCHAR(255) NOT NULL COMMENT '昇順・降順',
`deleted_at` TIMESTAMP COMMENT '削除時刻',
`created_by` VARCHAR(255) COMMENT '作成者',
`created_at` TIMESTAMP DEFAULT now() COMMENT '作成時刻',
`updated_by` VARCHAR(255) COMMENT '更新者',
`updated_at` TIMESTAMP DEFAULT now() COMMENT '更新時刻'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- +migrate Down
DROP TABLE `sort_criteria`;

View File

@ -0,0 +1,25 @@
-- +migrate Up
CREATE TABLE IF NOT EXISTS `checkout_permission` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'チェックアウト権限ID',
`task_id`BIGINT UNSIGNED NOT NULL COMMENT 'タスクID',
`user_id` BIGINT UNSIGNED COMMENT 'タイピストユーザーID',
`user_group_id` BIGINT UNSIGNED COMMENT 'タイピストユーザーグループID',
`deleted_at` TIMESTAMP COMMENT '削除時刻',
`created_by` VARCHAR(255) COMMENT '作成者',
`created_at` TIMESTAMP DEFAULT now() COMMENT '作成時刻',
`updated_by` VARCHAR(255) COMMENT '更新者',
`updated_at` TIMESTAMP DEFAULT now() COMMENT '更新時刻',
CONSTRAINT CHK_OnlyOneValue CHECK (
(
`user_id` IS NULL
AND `user_group_id` IS NOT NULL
)
OR (
`user_id` IS NOT NULL
AND `user_group_id` IS NULL
)
)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- +migrate Down
DROP TABLE `checkout_permission`;