我在这里的第一个问题。我非常喜欢这个网站:)
我有一个名为Product的SQL表。在该表中,我想为产品的ID创建一个列,我真的想知道编写ID的正确方法,因为从长远来看,我会创建很多ID列。
所以它是: “ID” 要么 “我”?
另一个表中的外键是名为ProductID还是ProductId?
答案 0 :(得分:7)
SQL中的大写主要是编码风格的问题。一致性是最重要的方面。也就是说,“ProductId”看起来有点像“Productld”(在“d”之前是一个小写的L),所以我更喜欢“ProductID”(或“productID”或“product_id”)。 / p>
至于使用表名为列名添加前缀,这在我的书中太多了。 Products.id
就足够了; Products.productID
是多余的。
答案 1 :(得分:6)
没有一种“正确”的方式。只是保持一致。我个人的偏好是在两个表中使用ProductId。如果您对所有表使用“ID”,然后加入另一个表,您最终可能会对它们进行别名以区分这两个ID字段。
答案 2 :(得分:3)
就个人而言,我在Product表和FK中也有ProductID,ProductName等,以避免ID和Name列无处不在
只是保持一致
答案 3 :(得分:2)
根据您的喜好。
大多数(很多?一些?我知道的?)框架似乎对主键采用了小写的“id”,对于外键采用了“primarykeytablename_id”,至少对于默认的命名约定。我自己并不喜欢这个惯例,因为我喜欢在关系的两边都有相同名称的关键。
我的偏好是两个地方的EntityNameID(例如ProductID,OrderID,OrderDtlID等)。
答案 4 :(得分:1)
我可能永远不应该接受那个心理学课,但因为有一个单词“id”,我总是将标识符的缩写大写,因此我使用“ID”。我只使用ID和ProductID作为主键名称进行了实验。因为我使用LINQ并简单地在设计器中映射类,所以我已经在代码中按照我想要的方式命名列。因为我更喜欢product.ID
而不是product.ProductID
,所以我使用较短的名称。对于外键,我使用表/列格式(没有分隔符),因此外键将成为ProductID。但是,在我的代码中,这对我来说不是问题,因为我几乎总是使用映射的实体,例如cart.Product
而不是密钥本身,cart.ProductID
。
编辑:注意我假设是.NET框架的目标,因此使用(主要)来自.NET的命名约定。如果我正在进行Rails开发,那么这些可能是小写的,我会使用下划线作为分隔符。
答案 5 :(得分:0)
嗯,“Id”是“识别”的缩写,所以它“应该”是“Id”。
另一方面,它发音为“I-D”而不是“id”,因此“ID”也可以接受。
对于表的主键,我更喜欢“ProductId”而不仅仅是“Id”,因此外键关系的两边都匹配。
答案 6 :(得分:0)
我倾向于没有'id'或'ID'。
我一直都愿意 table - productName
pkProductName 产品名称 fkProductCode
和表 - ProductCode pkProductCode PRODUCTCODE
因此,即使您正在使用SQL或在代码中,关系也是明确且有意义的。