テーブル構成
目次
- 解説
- 1. テーブル構成
解説
1. テーブル構成
DBには『Java WEB中級』コースと同じように、「ユーザー」を管理するusersテーブルと、「つぶやき」を管理するtweetsテーブルを作成し、それぞれ以下のカラムを持たせます。
usersテーブル
| カラム名 | 型 | 制約 | 説明 |
|---|---|---|---|
| id | serial | PRIMARY KEY | ユーザーID |
| text | NOT NULL UNIQUE | メールアドレス | |
| display_name | text | NOT NULL | 氏名 |
| pass | text | NOT NULL | パスワード |
| profile | text | プロフィール |
tweetsテーブル
| カラム名 | 型 | 制約 | 説明 |
|---|---|---|---|
| id | serial | PRIMARY KEY | つぶやきID |
| user_id | integer | NOT NULL REFERENCES users (id) | ユーザーID |
| post | text | NOT NULL | つぶやき内容 |
| created_at | timestamp | NOT NULL DEFAULT CURRENT_TIMESTAMP | 作成日時 |
| updated_at | timestamp | 更新日時 |
変更点
『Java WEB中級』コースでは、学習の為tweetsテーブルのpostカラムはnullを許可する仕様でしたが、本コースではNOT NULL制約を設定しています。
また、テーブル間のデータの整合性を保つため、tweetsテーブルのuser_idカラムに外部キー制約を設定しています。よって、つぶやきデータを登録する際にusersテーブルを参照するようになり、存在しないユーザーの場合は登録を弾くようになります。