Id或[TableName] Id作为主键/实体标识符

Eve*_*ien 4 sql sql-server orm database-design naming-conventions

是否首选使用"Id"作为主键的列名或"[TableName] Id"作为命名约定?

表:帐户
主键:Id

- 与 -

表:帐户
主键:AccountId

在我看到的实现中似乎分裂了大约50%/ 50%.每种方法有哪些优缺点?

跟进:

在我的数据库中使用一个约定,在代码中使用另一个约定是否有意义?或者我应该保持一致吗?在大多数ORM中,这怎么会最好?

gbn*_*gbn 14

TableNameID为清晰起见

  1. 提高JOIN可读性
  2. 当多个FK"ID"列(PK与FK匹配)时,清晰度
  3. ID是保留关键字


Dav*_*e L 8

我用ID.如何使用帐户ID作为外键设置用户表?您会将该列命名为AccountAccountID或AccountID吗?

但最重要的部分是在我看来,无论你选择哪种方式,都要保持一致.

编辑:我认为在阅读我的评论时,我的论点的逻辑是关闭的,因为显然你不会调用字段AccountAccountID.但是乍一看使用[TableName] ID作为主键,[TableName] ID作为外键,对我来说也奇怪.看起来你对两件应遵循同一套标准的事情使用两种不同的规则.另外我认为Account.ID和User.AccountID更具可读性和语义正确性.


KM.*_*KM. 5

避免将 ID、状态、描述等常用词作为列名称。

使用 WarehouseID、WarehouseStatus、WarehouseDescription 等名称,当您编写查询、搜索代码、阅读旧代码等时,这些名称将使您的生活更轻松。