簡體   English   中英

MySQL中的3個復合鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM