首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL设计表

MySQL设计表
EN

Stack Overflow用户
提问于 2015-12-05 19:45:10
回答 3查看 37关注 0票数 0

我们有三张桌子。

代码语言:javascript
复制
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)

我们设计了这样的表,但是我们不能满足这个条件;

“教师不应该在同一时间进行一项活动”

我们怎么才能换个桌子呢?

EN

回答 3

Stack Overflow用户

发布于 2015-12-05 19:55:06

您的主键可以帮助您在表given_activity上创建主键

代码语言:javascript
复制
PRIMARY KEY(a_id,i_id)
票数 0
EN

Stack Overflow用户

发布于 2015-12-05 20:22:18

条件:

教师不应该在同一时间进行活动。

是说在given_activity中没有教师/插槽的副本。您可以使用唯一索引/约束来完成此操作:

代码语言:javascript
复制
create unique index unq_givenactivity_instructor_slot on given_activity(I_ID, slot);
票数 0
EN

Stack Overflow用户

发布于 2015-12-05 20:58:05

@davejal

制作a_id和i_id PK会导致这种情况

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

代码语言:javascript
复制
a_id (PK)     i_id (PK)      slot
1             2              10-12
1             2              12-14
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34104487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档