相关疑难解决方法(0)

主键/外键命名约定

在我们的开发组中,我们就主键和外键的命名约定进行了激烈辩论.我们小组基本上有两种思想流派:

1:

Primary Table (Employee)   
Primary Key is called ID

Foreign table (Event)  
Foreign key is called EmployeeID
Run Code Online (Sandbox Code Playgroud)

要么

2:

Primary Table (Employee)  
Primary Key is called EmployeeID

Foreign table (Event)  
Foreign key is called EmployeeID
Run Code Online (Sandbox Code Playgroud)

我不想在任何列中复制表的名称(所以我更喜欢上面的选项1).从概念上讲,它与其他语言中的许多推荐实践一致,在这些实践中,您不在其属性名称中使用对象的名称.我认为命名外键EmployeeID(或Employee_ID可能更好)告诉读者它是表的IDEmployee.

其他一些人更喜欢选项2,您可以在其中命名前缀为表名的主键,以便整个数据库中的列名相同.我明白了这一点,但你现在无法在视觉上区分主键和外键.

此外,我认为在列名中包含表名是多余的,因为如果您将表视为实体而将列视为该实体的属性或属性,则将其视为ID属性,而Employee不是EmployeeID员工的属性.我不去问我的同事他PersonAge或她PersonGender是什么.我问他的年龄是多少.

就像我说的那样,这是一场激烈的争论,我们继续谈论它.我有兴趣获得一些新的观点.

sql database-design naming-conventions

90
推荐指数
4
解决办法
5万
查看次数

标签 统计

database-design ×1

naming-conventions ×1

sql ×1