【发布时间】:2014-10-10 16:35:14
【问题描述】:
对于使用一个表的外键作为另一个表的主键是否有任何一般设计考虑(好/坏/中性)?
例如,假设以下表格是电影目录的一部分:
titles
------
id
episodes
--------
title_id (PK/FK)
Episodes 显然可以同时使用 id 和 title_id 来完成,其中 id 是 PK,title_id 是 UNIQUE,但是由于 title_id 已经是唯一的,并且从技术上讲,它可以识别剧集,是否有什么需要考虑的?只是拿来当PK?一般来说呢?您对此有何设计考虑?
感谢您的意见!
【问题讨论】:
-
是否可以有多个具有相同标题的剧集(例如,标题充当系列标题)?有没有至少一集的标题?
-
不能有多个同名剧集。是的,可以有一个没有剧集的标题。有不同类型的标题。情节类型的标题将具有情节记录。
-
那么这看起来很合适。您实际上是在实现一种继承形式(参见this post 的“物理表示”部分)。在这种情况下,添加代理键将无益。
标签: mysql design-patterns database-design shared-primary-key