【发布时间】:2015-02-14 08:19:44
【问题描述】:
我在Users 和Events 之间有一个多对多关系,使用表UserEvent。只有一位用户是活动主持人。
我可以想到两种实现方式:
1) UserEvent 有一个 host 布尔列,对于活动主持人来说是 true。
2) Event 有一个 host 列指向单个用户。
第二个选项更清楚地表明只有一个主机,但可以使用第一个选项在业务逻辑中实现(如果事件主机为 1,则不允许其他主机)。我也喜欢第一个选项,因为主机列实际上只是一个 UserEvent 关系。有没有办法实现一个约束,使得单个Event 中只有一个UserEvent 有一个true host 列?
【问题讨论】:
-
EventHost 表将每个 Event 映射到其唯一的 Host 怎么样?该表将只有主机 ID 和事件 ID。
标签: sql database database-design relational-database