mysql多pk

carvr3hs  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(313)

我在设计mysql数据库时遇到了一个问题。我有五张table:
教授

教室
阶段
课程\课程
虽然course\u session列是其他表的主键:

|PROFESSOR_ID|GROUP_ID|CLASSROOM_ID|SESSION_ID |
| 1          |1       |3           |1          |
| 2          |2       |4           |1          |

知道表会话有starttime和endtime列。
我要确保在插入两次时:
相同的教授id和相同的课程id
或者,相同的组id与相同的会话id
或者,相同的教室id和相同的会话id
行动受到限制。
是否可以使用主键约束?或者这个设计对我来说是无效的?

mwkjh3gx

mwkjh3gx1#

您可以使用唯一约束(或唯一索引,它们的作用基本相同):

alter table course_session add constraint unq_course_session_ps
    unique (professor_id, session_id);

alter table course_session add constraint unq_course_session_gs
    unique (group_id, session_id);

alter table course_session add constraint unq_course_session_cs
    unique (classroom_id, session_id);

您还可以将唯一约束放在表定义本身中。。。。

相关问题