今回つくるのは
- タレント表(タレントのID、タレントの名前、所属事務所のID)
- 事務所表(事務所のID、事務所の名前)
という感じの表をMySQLでコマンドを打ってやっていきます。
また、ここでは事務所表を親表、タレントを子表として、主キーや外部キーも設定してみます。
create table officeTable (o_id int AUTO_INCREMENT, o_name VARCHAR(20), PRIMARY KEY(o_id),index(o_id)) auto_increment=1000, engine=INNODB;
o_idというのが事務所IDで、o_nameが事務所の名前。o_idはこのテーブルにおける主キーで、auto increment、つまり自動でどんどん振られていく番号として設定します。そうすることで、だぶりなく、無駄無くIDが振られるわけです。
insert into officeTable(o_name) values('aaaOffice'); insert into officeTable(o_name) values('bbbOffice');
insert文で、レコードを挿入。この後、いろいろやっていくと以下のようになってくれます。
特にo_idを設定しなくても、1000から順番にIDが振られているのがわかります。
次に、タレント表をつくります。
create table t_meibo (t_id int auto_increment, t_name varchar(20), o_id int, primary key(t_id),index (o_id),foreign key(o_id) references officeTable(o_id)) AUTO_INCREMENT=1, engine=INNODB;
タレントIDであるt_idを主キーとしています。また、先ほどauto incrementとすることで、1から順番にIDを振っていくこととします。さらに、所属事務所のIDは親表である事務所表の事務所IDと同一のものにしたいので、外部キーとして設定します。
では、レコードを登録していきます。
insert into t_meibo(t_name,o_id) values('takahashi',1000); insert into t_meibo(t_name,o_id) values('tanaka',1000)
無事、登録されました。
ここで、事務所IDとして存在し得ないものを書くと、エラーが起きます。
insert into t_meibo(t_name,o_id) values('takahashi',999);
次回まっではもっとレコードを増やして、テーブル同士の結合などなどに挑戦していきたいと思います。
0 件のコメント:
コメントを投稿