users
個々のユーザーの情報を格納します。
カラム名 | データ型 | 制約 | 説明 |
---|
id
| INTEGER
| PRIMARY KEY AUTOINCREMENT
| ユーザーの一意な識別子 |
username
| VARCHAR(255)
| UNIQUE NOT NULL
| ユーザー名(ログインIDなど) |
email
| VARCHAR(255)
| UNIQUE NOT NULL
| メールアドレス |
password_hash
| VARCHAR(255)
| NOT NULL
| ハッシュ化されたパスワード |
first_name
| VARCHAR(255)
| | 名 |
last_name
| VARCHAR(255)
| | 姓 |
created_at
| DATETIME
| DEFAULT CURRENT_TIMESTAMP
| レコード作成日時 |
updated_at
| DATETIME
| DEFAULT CURRENT_TIMESTAMP
| レコード最終更新日時 |
user_groups
ユーザーグループの情報を格納します。
カラム名 | データ型 | 制約 | 説明 |
---|
id
| INTEGER
| PRIMARY KEY AUTOINCREMENT
| ユーザーグループの一意な識別子 |
group_name
| VARCHAR(255)
| UNIQUE NOT NULL
| ユーザーグループ名 |
created_at
| DATETIME
| DEFAULT CURRENT_TIMESTAMP
| レコード作成日時 |
updated_at
| DATETIME
| DEFAULT CURRENT_TIMESTAMP
| レコード最終更新日時 |
users_user_groups
ユーザーは複数のグループに所属したり、グループに複数のユーザーが所属したりする多対多の関係を表現するために、中間テーブルを作成します。
カラム名 | データ型 | 制約 | 説明 |
---|
user_id
| INTEGER
| NOT NULL FOREIGN KEY REFERENCES users(id)
| ユーザーID |
user_group_id
| INTEGER
| NOT NULL FOREIGN KEY REFERENCES user_groups(id)
| ユーザーグループID |
PRIMARY KEY (user_id, user_group_id)
| | | 複合主キー(重複登録を防ぐ) |
created_at
| DATETIME
| DEFAULT CURRENT_TIMESTAMP
| レコード作成日時 |