テーブル構成
目次
- 解説
- 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テーブルを参照するようになり、存在しないユーザーの場合は登録を弾くことができます。
 
                            