最佳答案
在我们的开发小组中,关于主键和外键的变数命名原则,我们有一个激烈的争论。基本上我们这群人有两种思想:
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
或者
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
我不喜欢在任何列中重复表的名称(所以我更喜欢上面的选项1)。从概念上讲,它与其他语言中的许多推荐做法是一致的,即在属性名中不使用对象的名称。我认为命名外键 EmployeeID
(或者 Employee_ID
可能更好)告诉读者它是 Employee
表的 ID
列。
另一些人更喜欢选项2,其中将主键命名为前缀为表名,这样列名在整个数据库中都是相同的。我明白这一点,但是您现在无法在视觉上区分主键和外键。
另外,我认为在列名中使用表名是多余的,因为如果您将表看作一个实体,将列看作该实体的属性或属性,那么您将它看作 Employee
的 ID 属性,而不是员工的 EmployeeID
属性。我不会去问我的同事他的 PersonAge
或者 PersonGender
是什么。我问他的年龄是多少。
所以就像我说的,这是一场激烈的辩论,我们一直在讨论这个问题。我有兴趣得到一些新的观点。