在SQL中的列中编写“ID”的正确方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL中的列中编写“ID”的正确方法相关的知识,希望对你有一定的参考价值。

我在这里的第一个问题。我非常喜欢这个网站:)

我有一个名为Product的SQL表。在该表中,我想为产品的ID创建一个列,我真的想知道编写ID的正确方法,因为从长远来看,我会创建很多ID列。

它也是:“ID”或“Id”?

而且另一个表中的外键是ProductID还是ProductId?

答案

就个人而言,我在Product表和FK中也有ProductID,ProductName等,以避免在任何地方都有ID和Name列

只是保持一致

另一答案

SQL中的大写主要是编码风格的问题。一致性是最重要的方面。也就是说,“ProductId”看起来有点像“Productld”(在“d”之前是小写的L),所以我更喜欢“ProductID”(或“productID”或“product_id”)。

至于使用表名为列名添加前缀,我的书中的内容太多了。 Products.id就足够了; Products.productID是多余的。

另一答案

没有一种“正确”的方式。只是保持一致。我个人的偏好是在两个表中使用ProductId。如果您对所有表使用“ID”,然后加入另一个表,您可能最终会将它们别名,以区分这两个ID字段。

另一答案

根据你喜欢的。

大多数(很多?一些?我知道的?)框架似乎对主键使用小写“id”,对外键使用“primarykeytablename_id”,至少对于默认命名约定。我自己并不喜欢这个惯例,因为我喜欢在关系的两边都有相同名称的关键。

我的偏好是两个地方的EntityNameID(例如ProductID,OrderID,OrderDtlID等)。

另一答案

我可能永远不应该接受那个心理学课,但因为有一个单词“id”,我总是大写标识符的缩写,因此我使用“ID”。我只使用ID和ProductID作为主键名称进行了实验。因为我使用LINQ并简单地在设计器中映射类,所以我已经在代码中按照我想要的方式命名列。因为我更喜欢product.ID而不是product.ProductID,所以我使用较短的名字。对于外键,我使用表/列格式(没有分隔符),因此外键将成为ProductID。不过,在我的代码中,这对我来说不是问题,因为我几乎总是使用映射的实体,例如cart.Product而不是密钥本身,cart.ProductID

编辑:注意我假设.NET框架的目标,因此(主要)使用.NET的命名约定。如果我正在进行Rails开发,这些可能是小写的,我会使用下划线作为分隔符。

另一答案

好吧,“Id”是“识别”的缩写,所以它“应该”是“Id”。

另一方面,它发音为“I-D”而不是“id”,因此“ID”也是可以接受的。

对于表的主键,我更喜欢“ProductId”而不仅仅是“Id”,因此外键关系的两边都匹配。

另一答案

我倾向于没有'id'或'ID'。

我总是去桌子 - productName

pkProductName ProductName fkProductCode

和表 - ProductCode pkProductCode productCode

因此,即使您正在使用SQL或在代码中,关系也是明确且有意义的。

以上是关于在SQL中的列中编写“ID”的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL 中的列中的值 PIVOT 到新的列名中,然后在这些 PIVOT 列下列出其他列值?

如何从一个表中过滤出其 id 出现在另一个表的列中的记录

包含逗号分隔值的列中的值

想要从 ORACLE SQL 中的 2 个单独的列中为一个团队提供平均点

如何在表列中访问 SQL 中的 varray 元素

Oracle SQL:根据在另一个表中给定条件的列中找到的值插入