[英]3 composite keys in mysql
我想在MySql中使用3個復合鍵嗎? 這個可以嗎?
create table lecturer(
lec_id varchar(6) not null,
lec_name varchar(18)
primary key(lec_id)
);
create table subject(
sub_code varchar(6) not null,
sub_name varchar(18)
primary key(sub_code)
);
create table lecDetails(
lec_id varchar(6) not null,
sub_code varchar(6) not null,
sem varchar(6) not null,
primary key(lec_id,sub_code,sem)
FOREIGN KEY (lec_id) REFERENCES lecturer(lec_id)
ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (sub_code) REFERENCES subject(sube_code)
ON UPDATE CASCADE ON DELETE CASCADE
);
這是完全OKAY和可接受的使用,其包括引用的列的復合主鍵。 如果有這將是不能接受的SET NULL
動作或引用的列是NULL
。
好吧,這取決於表的結構以及將要存儲的大約記錄數,還取決於將要訪問表的命中/事務量。
對於存儲的講座信息信息,我認為這不會導致性能下降,它可能會稍微減慢SELECT
命令的速度,但幅度不會太大。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.