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