在我的项目中,我有以下表格:


事件(ID,标题,日期,user_id)
组(ID,名称,creator_id)
用户(ID,名称,电子邮件等)
group_user(group_id,user_id)


在该应用程序中,用户可以有一个个人事件,或者一个组可以有一个将与该组中的所有用户共享的事件。

用户能够创建一个事件,那么事件user_id是该用户ID。

现在,我想在一个组内创建一个事件-因此我需要该事件与该组之间的关系。

如果事件仅属于用户而非组,我是否应该在事件表中创建属性group_id并将其留空?
或者我应该考虑创建一个具有group_id属性的新表,例如groupEvent。
还是我应该创建一个数据透视表group_event,其中包含groupID和eventID作为属性。

谢谢你的帮助!!

最佳答案

我能想到的一种方法是让您摆脱Event表中的user_id外键,而拥有一个映射用户和事件的User_Event表和一个映射组和事件的Group_Event表。不确定这是否是最适合您的用例的设计,但是这将避免在事件表中使用两个外键(其中每行其中一个为NULL)。

关于mysql - 数据库中有自己的表还是字段为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45419643/

10-12 18:06