🔥
データベーステーブルの制約について(memo)
💡 制約(Constraint)とは
テーブルに保存するデータがルールに従うよう強制する仕組み。 目的はデータの正確性・一貫性・信頼性を保つこと。
🚫 なぜ制約が必要か
重複データ(同じ温泉施設)を防ぐ
存在しない温泉への評価登録を防ぐ
必須項目の未入力を防ぐ
数字の項目に文字が入るミスを防ぐ
🔒 主な制約の種類
PRIMARY KEY(主キー)
各行を一意に識別
重複不可
NULL不可
例:hot_springs.id, ratings.id
AUTOINCREMENT(自動増分)
主キーとセットで使用
IDを自動で採番
手動入力不要
例:温泉や評価の id
NOT NULL(非NULL)
値の入力を必須にする
空欄や NULL を禁止
例:name, location, price, rating など
FOREIGN KEY(外部キー)
他テーブルの主キーを参照
関連性を保証
存在しない親データを参照不可
例:ratings.onsen_id → hot_springs.id
DEFAULT(デフォルト値)
値が指定されなかった時の初期値
例:created_at = CURRENT_TIMESTAMP, rating = 0.0
Discussion