【发布时间】:2016-07-08 13:42:39
【问题描述】:
我正在为促销设计一张桌子。我可以推广三种类型的实体:文章、照片和论坛帖子。
最初我想创建一个包含三个外键的表,其中只设置一个。
promotion:
- id
- id_article
- id_photo
- id_thread
- promotion_type
- ... other properties
article:
- id
- .. other properties
photo:
- id
- .. other properties
thread:
- id
- .. other properties
这不是一个好方法吗?在最初的想法之后,看起来确实可以在这里做一些“更漂亮”的事情。 promotion_type 表示应该连接哪些外键表。
【问题讨论】:
-
promotion_type似乎是多余的。 -
按照设计,它可以节省一些加入时间,因为我们不必加入所有表,只需加入那些需要的表。
-
那也可以判断哪个id_的值正确?
-
看起来不错,即使我在查询中请求,sql server 也不会尝试加入空值。
标签: sql sql-server database-design foreign-keys