🔥

データベーステーブルの制約について(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