## 概要 [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) ## 補足
25 lines
932 B
SQL
25 lines
932 B
SQL
-- +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`; |