From 0ca766f309785a11301959901f43ad42695681e0 Mon Sep 17 00:00:00 2001 From: "saito.k" Date: Fri, 2 Jun 2023 08:13:33 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20127:=20Task1856:=20DB=E3=83=9E?= =?UTF-8?q?=E3=82=A4=E3=82=B0=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=EF=BC=88=E3=82=BF=E3=82=B9=E3=82=AF=E4=B8=80=E8=A6=A7=E5=8F=96?= =?UTF-8?q?=E5=BE=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [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) ## 補足 --- .../db/migrations/010-create_user_group.sql | 14 +++++++++++ .../011-create_user_group_member.sql | 14 +++++++++++ .../migrations/012-create_sort_criteria.sql | 15 +++++++++++ .../013-create_checkout_permission.sql | 25 +++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 dictation_server/db/migrations/010-create_user_group.sql create mode 100644 dictation_server/db/migrations/011-create_user_group_member.sql create mode 100644 dictation_server/db/migrations/012-create_sort_criteria.sql create mode 100644 dictation_server/db/migrations/013-create_checkout_permission.sql diff --git a/dictation_server/db/migrations/010-create_user_group.sql b/dictation_server/db/migrations/010-create_user_group.sql new file mode 100644 index 0000000..094a66b --- /dev/null +++ b/dictation_server/db/migrations/010-create_user_group.sql @@ -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`; \ No newline at end of file diff --git a/dictation_server/db/migrations/011-create_user_group_member.sql b/dictation_server/db/migrations/011-create_user_group_member.sql new file mode 100644 index 0000000..f44a982 --- /dev/null +++ b/dictation_server/db/migrations/011-create_user_group_member.sql @@ -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`; \ No newline at end of file diff --git a/dictation_server/db/migrations/012-create_sort_criteria.sql b/dictation_server/db/migrations/012-create_sort_criteria.sql new file mode 100644 index 0000000..5bcc4a3 --- /dev/null +++ b/dictation_server/db/migrations/012-create_sort_criteria.sql @@ -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`; \ No newline at end of file diff --git a/dictation_server/db/migrations/013-create_checkout_permission.sql b/dictation_server/db/migrations/013-create_checkout_permission.sql new file mode 100644 index 0000000..8232a12 --- /dev/null +++ b/dictation_server/db/migrations/013-create_checkout_permission.sql @@ -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`; \ No newline at end of file