我想在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
);
答案 0 :(得分:1)
完全 OKAY ,并且可以使用包含引用列的复合主键。如果存在SET NULL
操作或引用的列为NULL
,则无法接受。
答案 1 :(得分:0)
嗯,这取决于你的表的结构和将要存储的大致记录数,以及你的表将被访问的点击/交易量。
对于存储的讲座信息信息,我认为它不会导致性能下降,它可能会使SELECT
命令稍微减慢但不会那么慢。