我有两个“事件”类型的表,它们都可以包含与事件相关的“用户”列表。我想为用户使用一个通用的查找表,但我不确定如何设置 FK。
Highlight:
|ID |Details|
Event:
|ID |Details|
Contacts:
|event_id |highlight_id |user |type |
这实际上不起作用,因为 event_id 和/或 highlight_id 可能为空,具体取决于我处理的事件类型。
如果可能的话,我想避免为每个事件使用查找表
最佳答案
我肯定会为 user_event 和 user_highlight 使用单独的查找表。除非有充分的理由创建 user_id|event_id|highlight_id 关系(行),否则以这种方式定义它毫无意义。
events
+-----+
event_id
detail
highlights
+---------+
highlight_id
detail
users
+----+
user_id
user_event
+---------+
user_id (FK)
event_id (FK)
user_highlight
+-------------+
user_id (FK)
highlight_id (FK)
关于MySql 共享查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22303816/