Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL设计表_Mysql_Sql_Database Design - Fatal编程技术网

MySQL设计表

MySQL设计表,mysql,sql,database-design,Mysql,Sql,Database Design,我们有三张桌子 Instructor ID (PK, AI) Name Surname Activity ID (PK, AI) Name given_activity A_ID (FK to Activity ID) I_ID (FK to Instructor ID) Slot (PK) 我们的桌子是这样设计的,但我们不能满足这个条件 “讲师不应同时进行活动” 我们如何更改表?您的主键可以帮助您 在给定活动的表上创建主键 PRIMARY KEY(a_id,i_id) 条件: 讲师不

我们有三张桌子

Instructor
ID (PK, AI)
Name
Surname


Activity
ID (PK, AI)
Name

given_activity
A_ID (FK to Activity ID)
I_ID (FK to Instructor ID)
Slot (PK)
我们的桌子是这样设计的,但我们不能满足这个条件

“讲师不应同时进行活动”


我们如何更改表?

您的主键可以帮助您 在给定活动的表上创建主键

PRIMARY KEY(a_id,i_id)
条件:

讲师不应同时进行活动

表示给定的\u活动中的讲师/插槽没有重复项。您可以通过一个唯一的索引/约束来实现这一点:

create unique index unq_givenactivity_instructor_slot on given_activity(I_ID, slot);
@达维加尔

做一个身份证和身份证PK会导致

“讲师不能在不同时间进行活动”


你的意思是说,在给定的活动中,讲师不能有相同的时间???请详细说明。是的,讲师在给定的_活动表中不能有相同的插槽值。通过这样做,我是否能够满足条件?使此主键唯一,是的,它将满足您的要求
a_id (PK)     i_id (PK)      slot
1             2              10-12
1             2              12-14