这种情况的最佳解决方案/实践是什么?我有一个表,可以引用多个表(对象)?许多fk表的一个表列?
下面是一个表UserCalendar的例子。这是一个用户保存他的事件的表格,而且系统从后面插入到这张表格中。用户执行一些服务,这些服务具有最后期限,并且这些服务也插入到此表中。问题是没有像UserEvent表这样的表。用户应该将其所有事件保存在此日历中作为说明。我应该尽可能简单。
我可以设计这两种方式。
1)
UserCalendar
UserCalendarId | UserId |说明| ObjectType | ObjectId
使用这个选项我不必FK这个表。我只能更改ObjectType(通知,服务,日历)并使用该表的id作为ObjectId。在事件的情况下,将不存在这样的表,并且这将是空字段。 我们称这个伪FK列。
2) 或者我可以在理论上对每个FK使用多个表格。
UserCalendar
UserCalendarId | UserId |说明
UserEvent
UserCalendarId | EVENTID
UserServices
UserCalendarId | SERVICEID
UserNotifications
UserCalendarId | NotificationId
...
对于每个系统事件或属于某种类型的任何其他自定义事件,此外部关系表可以是n数,第一种解决方案是快速实施。