
118
他のテーブルと関連付ける
4-13
カラムに「FOREIGNKEY」を設定すると、そのカラムには、指定し
た他のテーブルのカラムに存在する値しか格納できなくなります。つま
り、
ことができます。このような設計にしておくことで、後から
3-20で紹介したようなテーブル結合を行ってデータ抽出するといったこ
とが可能になります。
例えば部署の情報が保存されたテーブルを用意し、これを親テーブルと
します。それに関連付いた子テーブルとして、「部署 ID」を格納するカラ
ムを設けたユーザーの情報を保存するテーブルを作成するとします。この
「部署ID」カラムは部署テーブルと紐づいているので、部署テーブルに格
納されていない部署のIDは登録できないようにしておく必要があり、こ
のようなカラムに対して「FOREIGNKEY」を設定します(図4-25)。
ちなみに「FOREIGNKEY」を設定したカラムは、外部キーと呼ばれま
す。
MySQLの場 合 は、図4-26 のようにテーブル作成時のコマンド中に
「FOREIGNKEY」を使って、その後ろに外部キーを設定したいカラム名
や、関連先にあたる親のテーブル名やカラム名を指定することができま
す。今回の例では「name」カラムと「department̲id」カラムを設けた
「users」テーブルを作成しています。そして「department̲id」