【问题标题】:2 tables with more than one relationship2 个表具有多个关系
【发布时间】:2011-06-07 09:16:43
【问题描述】:

我有 2 个表,一个事件和用户。这 2 个表有 2 种关系。

1 个事件可以有 1 个创建者(用户) 1 个用户可以创建多个事件

1 个事件可以有多个成员(用户) 1 位用户可以参加许多活动

对于多对多关系,我将创建另一个表来链接它们。可能将其命名为participants

但我不确定我应该如何将我的第一个关系(上面的 1 对 N)放入其中。我应该如何设计它?

【问题讨论】:

  • 这不是一对一的。它是多对一的。一个事件只能有一个创建者,但一个创建者可以创建多个事件。
  • 谢谢@steph,我会解决这个问题的:)

标签: database-design


【解决方案1】:

创作者与你的participants无关,所以我不会尝试混合它们。

将创建者的引用作为另一列添加到event

【讨论】:

  • 这有什么缺点吗?因为这对我来说是一种奇怪的关系:)
  • @Phelios:不是真的,因为这是两种不同类型的关系。创建者可能是也可能不是事件的参与者,这对您的模型没有影响。这个额外的列可以很容易地理解这些关系。
【解决方案2】:

EVENTS 应该有一个名为creator 的字段(USERS 的外键)

USERS 加入 EVENTS 的 M-N 关系,如您所说的 PARTICIPANTS

【讨论】:

  • 这有什么缺点吗?因为这对我来说是一种奇怪的关系:)
  • 不,这很正常;)您只是将同一个“实体”用于两个不同的目的,但没有什么奇怪的^^。仅为创作者构建其他实体将是设计错误恕我直言
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 2019-08-22
相关资源
最近更新 更多