更改用户表关系的正确方法


Correct way to change user table relationship?

我正在研究一个事件系统,它有两个表,EVENTS和EVENT_CREATORS。 我一直通过将创建者 ID 放在事件表中来将事件链接到创建者,因为我认为我只有一个事件创建者。

我现在需要多个创建者能够编辑一个事件。 我是否应该简单地向事件表添加其他字段,即ec_id、ec_id_2、ec_id_3等。 还是向数据库添加一个交叉引用表并为其他创建者添加一个单独的表更有意义?

在这种情况下,使用交叉引用表是明智的。我将逐步解释它。第一

  • 创建新表。称之为"event_reference">
  • 给出以下领域:IdRef_IdCreator_ID

我将省略 EventId 的需要,因为我们正在创建一个对事件的引用表,因此事件的表将保存Ref_Id以跟踪所有引用。

  • 接下来,修改events表并存储Ref_ID而不是Creator

通过这种方式,您可以以规范化的方式获取事件的所有创建者。

你应该有 3 个表:

Event (with an ID field)
Creator (with an ID field)
EventCreator (2 fields: eventID and creatorID)

这应该几乎涵盖了事件和创作者之间的所有可能关系。您可以通过在事件创建者表上创建索引来限制关系。

简单的说法是添加一个交叉引用表。 这样,您就不必担心将来需要多少创作者。

所以,有一个这样的表:


xref_Events_Creators事件标识
创作者标识