データベース名

taskManagementDemo

テーブル一覧

users(ユーザー情報)
tasks(タスク情報)
priority(優先度情報)
status(ステータス情報)

usersテーブル

No 項目名 項目名(英語) データ型 桁数 主キー 外部キー NULL
制約
  説明/備考
1 ユーザーID user_id varchar 6     英数字
2 名前 name varchar 40        
3 メールアドレス email varchar 100          
4 パスワード password varchar 60       パスワードはハッシュ化して格納
5 権限 role varchar 10         ROLE_MANAGER / ROLE_USER

tasksテーブル

No 項目名 項目名(英語) データ型 桁数 主キー 外部キー NULL
制約
  説明/備考
1 タスクID task_id int 6     整数型。AUTO_INCREMENTで自動採番
2 ユーザーID user_id varchar 6     ユーザーテーブルの外部キー
3 優先度ID priority_id varchar 2     優先度テーブルの外部キー
4 ステータスID status_id varchar       ステータステーブルの外部キー
5 タスク名 task_name varchar 255                
6 開始日 start_date date         タスクの開始日。
7 終了日 end_date date         タスクの終了日。

priorityテーブル

No項目名項目名(英語)データ型桁数主キー外部キーNULL
制約
説明/備考
1優先度IDpriority_idvarchar6
2優先度名priority_namevarchar20
3表示順display_orderint2

statusテーブル

No項目名項目名(英語)データ型桁数主キー外部キーNULL
制約
説明/備考
1ステータスIDstatus_idvarchar6
2ステータス名status_namevarchar20
3表示順display_orderint2

初期データ投入用プログラム

schema.sql

DROP TABLE IF EXISTS tasks;
DROP TABLE IF EXISTS status;
DROP TABLE IF EXISTS priority;
DROP TABLE IF EXISTS users;


create table `users`
(
    user_id  varchar(6)  not null,
    name     varchar(40) not null,
    email    varchar(100),
    password varchar(60) not null,
    role     varchar(20),
    check (role in ('ROLE_USER', 'ROLE_MANAGER')),
    primary key (user_id)
);

create table priority
(
    priority_id   varchar(6) not null,
    priority_name varchar(20),
    display_order int,
    primary key (priority_id)
);

create table status
(
    status_id     varchar(6) not null,
    status_name   varchar(20),
    display_order int,
    primary key (status_id)
);

create table tasks
(
    task_id     int        not null auto_increment,
    user_id     varchar(6) not null,
    priority_id varchar(6) not null,
    status_id   varchar(6) not null,
    task_name   varchar(255),
    start_date  DATE,
    end_date    DATE,
    constraint fk_task_user foreign key (user_id) references `users` (user_id),
    constraint fk_task_priority foreign key (priority_id) references priority (priority_id),
    constraint fk_task_status foreign key (status_id) references status (status_id),
    primary key (task_id)
);

data.sql

insert into `users`
(user_id, name, email, password, role)
values ('1', '鈴木 花子', 'user1@sample', '$2a$10$97qv9CtZ5lMyDIGNJGXN.uQZDllWHTXPQ0IoaGzt7dt.ANJ/Gl0uq', 'ROLE_MANAGER');

insert into `users`
(user_id, name, email, password, role)
values ('2', '田中 太郎', 'user2@sample', '$2a$10$97qv9CtZ5lMyDIGNJGXN.uQZDllWHTXPQ0IoaGzt7dt.ANJ/Gl0uq', 'ROLE_USER');

INSERT INTO `users` (user_id, name, email, password, role)
VALUES ('3', '山本 千恵子', 'user3@sample', '$2a$10$97qv9CtZ5lMyDIGNJGXN.uQZDllWHTXPQ0IoaGzt7dt.ANJ/Gl0uq', 'ROLE_USER');

insert into priority
(priority_id, priority_name, display_order)
values ('0', '期限なし', 0);

insert into priority
(priority_id, priority_name, display_order)
values ('1', '低', 10);

insert into priority
(priority_id, priority_name, display_order)
values ('2', '中', 20);

insert into priority
(priority_id, priority_name, display_order)
values ('3', '高', 30);

insert into priority
(priority_id, priority_name, display_order)
values ('4', '緊急', 40);

insert into status
(status_id, status_name, display_order)
values ('0', '未着手', 0);

insert into status
(status_id, status_name, display_order)
values ('1', '進行中', 10);

insert into status
(status_id, status_name, display_order)
values ('2', '完了', 20);

insert into status
(status_id, status_name, display_order)
values ('3', '保留', 30);

insert into status
(status_id, status_name, display_order)
values ('4', '中止', 40);

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (1, '1', '0', '0', '要件定義の実施', '2024-07-02', '2024-08-20');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (2, '1', '1', '2', 'データベース設計', '2024-07-20', '2024-07-21');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (3, '2', '3', '3', 'ユースケース図の作成', '2024-08-02', '2024-09-20');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (4, '2', '4', '4', 'クラス図の作成', '2024-08-15', '2024-08-16');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (5, '2', '4', '4', 'シーケンス図の作成', '2024-07-25', '2024-08-10');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (6, '1', '2', '3', 'テストケースの作成', '2024-08-04', '2024-08-20');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (7, '1', '2', '2', 'ユーザーインターフェース設計', '2024-09-20', '2024-09-21');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (8, '2', '4', '1', 'メインモジュールの実装', '2024-06-16', '2024-06-30');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (9, '2', '1', '1', '例外処理の実装', '2024-08-22', '2024-08-22');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (10, '2', '1', '1', 'パフォーマンスチューニング', '2024-07-25', '2024-08-10');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (11, '1', '4', '2', 'セキュリティ対策の検討', '2024-08-10', '2024-08-20');

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (12, '1', '1', '0', 'ドキュメンテーション作成', CURRENT_DATE, CURRENT_DATE);

insert into tasks
(task_id, user_id, priority_id, status_id, task_name, start_date, end_date)
values (13, '2', '1', '1', '運用・保守計画の策定', CURRENT_DATE, CURRENT_DATE);

※初期ユーザーのパスワードは「1234」をハッシュ化しています。

カテゴリー: データベース