我有列 id、用户名、电子邮件和密码的表用户。我还有另一个与表用户有关系的表。
有些开发者使用前缀方式(column id_user
),有些开发者使用后缀方式(column user_id
)。
哪种方式是正确的,为什么。
没有正确的方法,只是口味问题。我会在后缀上使用前缀,因为它将名称中更有意义的部分放在首位,使其阅读速度稍快(或者我想像这样)。
使用 ID 是一种 SQL 反模式,不应使用。与使用 tablename ID 方法相比,它更可能导致问题,因为人们将在允许他们的 dbs 中使用自然连接并连接到错误的 id 或在复杂的 sql 中报告很容易连接到错误的 id(来自不同的比你加入的表)如果你使用表名ID,你会得到一个语法错误。此外,PK 和 FK 具有相同的名称更有意义。确切地知道您要加入的内容变得更加简单。
使用 IDTablename 或 tablenameID 是一个选择问题。在我访问过的所有数据库(我职业生涯中的数千个)中,大多数似乎更喜欢 tablenameId。无论选择什么,都要通过数据库保持一致。使用数据库非常烦人,其中一些表使用 Id,一些使用 tablenameId,一些使用 tablename_id,一些使用 Id_tablename,一些使用 IDtablename。模式一致性比命名对象中的任何其他因素都更重要。
作为记录:
我在这里收集有关命名约定的信息
https://medium.com/southprojects/database-naming-convention-the-definitive-guide-90424d6c2d36
到目前为止,我发现user_id(如果数据库允许带有大小写的列,则为UserId )比id_user(IdUser)使用得更多。但是,两者都是有效的。
此外,Oracle 曾经说过正确的方法是 user_id_pk 但我认为这种意识形态已经过时了。