データベース名
taskManagementDemo
テーブル一覧
users(ユーザー情報)
tasks(タスク情報)
priority(優先度情報)
status(ステータス情報)
usersテーブル
No | 項目名 | 項目名(英語) | データ型 | 桁数 | 主キー | 外部キー |
NULL 制約 | 説明/備考 | ||||
1 | ユーザーID | user_id | varchar | 6 | 〇 | 〇 | 英数字 | |||||
2 | 名前 | name | varchar | 40 | 〇 | |||||||
3 | メールアドレス | 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 | 優先度ID | priority_id | varchar | 6 | 〇 | 〇 | ||||||
2 | 優先度名 | priority_name | varchar | 20 | ||||||||
3 | 表示順 | display_order | int | 2 |
statusテーブル
No | 項目名 | 項目名(英語) | データ型 | 桁数 | 主キー | 外部キー | NULL 制約 | 説明/備考 | ||||
1 | ステータスID | status_id | varchar | 6 | 〇 | 〇 | ||||||
2 | ステータス名 | status_name | varchar | 20 | ||||||||
3 | 表示順 | display_order | int | 2 |
初期データ投入用プログラム
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」をハッシュ化しています。