MySql共享查找表

时间:2014-03-10 15:04:57

标签: mysql foreign-keys relationships

我有两个'事件'类型表,这两个表都可以包含与事件有关的'用户'列表。我想为用户使用通用查找表,但我不确定如何设置FK。

Highlight:
|ID   |Details|

Event:
|ID   |Details|

Contacts:
|event_id  |highlight_id  |user  |type |

这不起作用,因为event_id和/或highlight_id可能为null,具体取决于我正在处理的事件类型。

如果可能的话,我想避免每个事件的查找表

1 个答案:

答案 0 :(得分:2)

我肯定会为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)