Sql server 数据库代理密钥名称:Product.ProductId vs Product.Id vs Product.Product\u Id

Sql server 数据库代理密钥名称:Product.ProductId vs Product.Id vs Product.Product\u Id,sql-server,database,naming-conventions,identity,Sql Server,Database,Naming Conventions,Identity,假设您有一个名为Product的表,它有一个自动编号/标识列。您是简单地将其命名为Id,还是将其命名为ProductId或Product\u Id?请解释原因。只需ID。它比较短,可以很好地与其他代码生成工具/自动映射器等配合使用。没有明确的答案,因为它取决于您的其他工具、现有命名约定,甚至个人偏好。例如,您可以使用一个ORM,它要求每个表上都有“ID”。就我个人而言,我会选择“ProductID”,因为它使我更容易阅读查询,而且我不喜欢下划线 一个完全错误的论点是“ID”节省了键入时间:阅读代

假设您有一个名为Product的表,它有一个自动编号/标识列。您是简单地将其命名为Id,还是将其命名为ProductId或Product\u Id?请解释原因。

只需
ID
。它比较短,可以很好地与其他代码生成工具/自动映射器等配合使用。

没有明确的答案,因为它取决于您的其他工具、现有命名约定,甚至个人偏好。例如,您可以使用一个ORM,它要求每个表上都有“ID”。就我个人而言,我会选择“ProductID”,因为它使我更容易阅读查询,而且我不喜欢下划线

一个完全错误的论点是“ID”节省了键入时间:阅读代码的时间比编写代码的时间要多得多,因此您应该始终优先考虑可读代码而不是保存击键


如果您想要一些“真实”的参考,请查看Joe Celko的和/或。

表名已经显示了存储在中的内容。为什么要将这些信息复制到字段中呢?因为如果您有15个表,每个表上都有“ID”列,这意味着每个表上有不同的内容,那么它会使连接成为PITA。