めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

MySQLの外部参照について(1)

Ruby on Rails で外部参照をする場合について、どうやってテーブルを用意したらいいのか、さっぱりわからなかったので、調べてみる。調べつつ書いておくメモ。

データベースを作る

CREATE DATABESE testdb;

参照されるテーブル(被参照)を作る

CREATE TABLE team (
id int AUTO_INCREMENT,
name text NOT NULL,
teamname varchar(255) NOT NULL,
UNIQUE (teamname),
PRIMARY KEY (id)
)
TYPE=InnoDB;

こうして作ると、インデックスとなるのが2つできたテーブルになる。
確認方法は、「インデックスの状態を見る」で書いておいた。

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| team  |          0 | PRIMARY  |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         | 
| team  |          0 | teamname |            1 | teamname    | A         |           0 |     NULL | NULL   |      | BTREE      |         | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
2 rows in set (0.01 sec)

参照する制約があるテーブル(参照側)を作る

CREATE TABLE people (
PRIMARY KEY (id)
)
TYPE=InnoDB;

インデックスの状態を見る

よくわかっていないインデックスとキーについてです。

SHOW INDEX FROM テーブル名

これでインデックスについての情報が見られます。

インデックスとキー

インデックスとキーは、同じ意味だったらしい。
知らんかった。

Ruby on Rails での外部参照

元々は、Ruby on Rails での外部参照をどうやればできるのか、検討していたためでした。
で、考えればIDから、値を取得できれば問題ないよね?と気づきました。
というわけで、それでテストです。