0

在表中使用外键时,更改该表的键的名称是否是好的形式,以明确该键在表中执行的功能,还是保留原始名称的好形式,使其清楚它是一个外键吗?

示例: 一个表跟踪用户,主键是user_id

第二个表存储网站上的文章并使用外键跟踪作者user_id

在第二个表的上下文中,调用外键会更有意义author。在整个数据库的上下文中,调用外键会更有意义user_id

是否有处理这种情况的一般惯例,或者这就是评论的目的?

4

2 回答 2

1

了解数据库模式的建模和设计是常规的。任何对数据库管理员有意义的东西。业务逻辑不关心数据库是如何命名的,只关心结果。对于数据库管理员来说,如果将外键 author_id 重命名为引用另一个表的 user_id 更有意义,那么这样做并在某些文档中注明 T2.author_id 必须存在于 T1.user_id 中。当从建模过渡到设计数据库时(这就是您现在所处的位置),保持简单是有意义的,但是您可以更改外键名称,只要您能记住它们(并记录它们)。

于 2012-12-16T22:51:03.533 回答
1

好吧,如果你有一个电影表,你不会想要名为 person_id 和 person_id 的列,而是需要 producer 和 director,或者可能是 producer_id 和 director_id,或者可能是 producer_person_id 和 director_person_id。

我知道电影可以有多个导演和多个制片人;这只是一个例子。任何情况下,如果一个表有两个指向同一个表的外键,你就会知道原则​​上你不能完全遵守在列名中只使用表名的约定。您可以同时使用两者(如 producer_person_id 示例中所示),但这会导致列名长。

不要使用评论。没有人阅读它们。好吧,这也许只是刻板印象,但总的来说,评论的描述性名称更受欢迎!

除了两个外键问题之外,我真的不知道有任何普遍接受的约定。

于 2012-12-16T22:51:10.767 回答