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から、値を取得できれば問題ないよね?と気づきました。
というわけで、それでテストです。