![]() |
1
14
为了清晰起见,表名ID
|
![]() |
2
7
我使用ID。您如何将帐户ID设置为外键的用户表?你会把那个栏目命名为accountaccountid还是accountid? 但最重要的是在我看来,无论你选择哪种方式,都要始终如一。 编辑 :我认为在阅读我的评论时,我的论点逻辑是错误的,因为显然你永远不会调用字段accountaccountid。但乍一看,使用[tablename]id作为主键,使用[tablename]id作为外键 感觉 我觉得很奇怪。似乎你对两件事情使用了两种不同的规则,它们应该遵循相同的一套标准。另外,我认为account.id和user.account id在语义上更为可读和正确。 |
![]() |
3
3
避免使用诸如id、status、description之类的常用词作为列名。 使用仓库ID、仓库状态、仓库描述等名称,这些名称将使您在编写查询、搜索代码、读取旧代码等时的生活更加轻松。 |
![]() |
4
2
第一种方法更可能是OOP命名约定。 第二种方法的优点是避免了联接查询中的列名不明确。尽管您可以使用别名,但有时这是不可能的,就像在某些ORM框架中一样(EntitySpaces出现在脑海中)。 |
![]() |
5
2
我发现显式命名(tableid)更好。对于start,所有外键都有一个这样的自然名称([relatedtable]id)。而且,我总是返回带有两种类型ID的连接查询,在这两种类型的ID中,我必须正确地对它们进行别名,以便客户机能够区分accountID和clientID。使用显式键名还简化了我的数据访问/ORM层逻辑,因为它不必处理歧义,例如,帐户类型键在某些查询中始终是“account id”,而不是“id”,在其他查询中则是“account id”。我的2C。 |
![]() |
6
0
我一直使用一个方案,发现它非常有用。 表中的主键总是称为“id”,使用splittet键,我用行标识信息调用列,否则不调用“id”列。 所有外键都使用它们所引用的表的名称。
|
![]() |
7
0
我同意你的看法。这是一个分裂。不过,ID本身并不是很有描述性。通常我不使用ID,因为在处理可能的SQL注入风险时,使用accountID非常安全。 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Chance · 根据Sequelize中的字段拉入特定记录/行 3 年前 |
![]() |
lambchop01 · GORM如何为相似实体之间的关系建模 3 年前 |
![]() |
Shale · 如何将此查询更改为ORM? 3 年前 |
![]() |
Daniel Morales · 替换mongo DB中的嵌入字段 3 年前 |
![]() |
Vinay P · NodeJS和ORM? 7 年前 |
![]() |
MadDoctor5813 · 在Django模型中创建“简单”字典? 7 年前 |