我正在开发一个事件系统,它有两个表,EVENTS 和 EVENT_CREATORS。我一直通过将创建者 ID 放在事件表中来将事件链接到创建者,因为我认为我只会有一个事件创建者。
我现在需要多个创建者编辑事件的能力。我是否应该简单地向 EVENTS 表添加其他字段,即 ec_id、ec_id_2、ec_id_3 等。或者向数据库添加交叉引用表并为其他创建者添加单独的表是否更有意义?
你应该有 3 张桌子:
Event (with an ID field)
Creator (with an ID field)
EventCreator (2 fields: eventID and creatorID)
这应该几乎涵盖了事件和创作者之间所有可能的关系。您可以通过在 EventCreator 表上创建索引来限制关系。
简单来说就是添加一个交叉引用表。这样您就不必担心将来需要多少创作者。
所以,有一个像这样的表:
xref_Events_Creators
EventId
CreatorId
在这种情况下,明智的做法是使用交叉引用表。我将逐步解释它。第一的
Id
, Ref_Id
, Creator_ID
.我将省略 EventId 的需要,因为我们正在创建一个对事件的引用的表,所以事件的表将保存Ref_Id
以跟踪所有引用。
events
表并存储Ref_ID
而不是Creator
这样,您可以以标准化的方式获取事件的所有创建者。