kyoshida-aim / RailsTraining

Ruby on Rails研修のPR作成・進捗管理用
https://ky-railstraining-2019.herokuapp.com/
1 stars 0 forks source link

DB設計 #1

Open kyoshida-aim opened 5 years ago

kyoshida-aim commented 5 years ago
  1. users ログイン用・管理画面での表示用
id名 説明 Nullを許容 初期値 補足
id ID Int False 自動で割り振り
login_id ログインID Str False なし 英数字。4文字以上
password ログイン用パスワード Str False なし 8文字以上
role 権限 Int True 1:user Enum 0:adminと1:userのみ

tasksに対して 1 : n >= 0 の関係にある labelsに対して 1 : n >= 0 の関係にある

例:

users_id login_id password role
1 Yamada xxx 0:admin
2 Suzuki yyy 1:user
3 TanakaTarou zzz 1:user
  1. tasks タスク一覧
id名 説明 Nullを許容 初期値 補足
id カラムID Int False 自動で割り振り
user_id ユーザーID Int False 自動で割り振り 重複あり
name タスク名称 Str False なし 30文字以内
description タスク説明 Str False 空の文字列 上限なし
deadline_at 終了期限 Date/Time True なし 設定した時点での日付から先の値
status 0:未着手・着手中・終了 Int False 0:未着手 Enum 下記参照
priority 優先順位 Int False 優先順位:中 Enum

usersに対して n >= 0 : 1 の関係にある tasks_labelsに対して 1 : n >= 0 の関係にある

statusに使う名称は変更する可能性あり 候補↓ 未着手: not_started

着手: in_progress

終了: finished

例:

tasks_id name description deadline status
1 UI作成 UIのイメージ図を作成する 2019/06/30 19:00 1:着手
2 ER図作成 ER図を作成する 2019/06/30 19:00 0:未着手
  1. labels 登録されたラベル一覧
id名 説明 Nullを許容 初期値 補足
id カラムID Int False 自動で割り振り
user_id ユーザーID Int False 自動で割り振り 重複が考えられる項目
name ラベル名 Str False なし 16文字以内

ラベルの登録数はとりあえず100を上限と仮定する 多すぎる気がする。20に変更

tasks_labelsに対して 1 : n >= 0 の関係にある。 usersに対して n >= 1 : 1 の関係にある。

例:

labels_id users_id name
1 1 朝にやる
2 1 昼にやる
3 2 後回しでいい
  1. label_map(仮)
id名 説明 Nullを許容 初期値 補足
id カラムID Int False 自動で割り振り 使用する予定なし
task_id タスクID Int False - タスク登録時に連動して登録
label_id ラベルID Int False - 同上

一つのtask_idに対して設定できるlabel_idの上限は、とりあえず、10とする。

tasksに対して n >= 0 : n >= 0 の関係にある。 labelsに対して n >= 0 : n >= 0 の関係にある。

例:

id task_id label_id
1 1 1
2 1 2
3 2 3