代码之家  ›  专栏  ›  技术社区  ›  radbyx Matt

在SQL的列中写入“id”的正确方法

  •  4
  • radbyx Matt  · 技术社区  · 15 年前

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

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

    是这样的: “ID” 或 “ID”?

    还有另一个表中的外键,它是productid还是productid?

    那个家伙。

    7 回复  |  直到 15 年前
        1
  •  3
  •   gbn    15 年前

    就我个人而言,我在产品表和FK中使用productID、productName等,以避免到处都有i d和name列。

    只是要始终如一

        2
  •  7
  •   outis    15 年前

    SQL中的大写在很大程度上取决于编码样式。一致性是最重要的方面。这就是说,“product i d”在我看来有点像“productld”(在“d”之前是小写-l),所以我更喜欢“productid”(或“productid”或“product_id”)。

    至于在列名前面加上表名,在我的书中有很多。 Products.id 足够; Products.productID 是多余的。

        3
  •  5
  •   Martin Smith    15 年前

    没有“正确”的方法。只要始终如一。我个人的偏好是在两个表中都使用productID。如果您对所有表都使用“id”,然后连接到另一个表,那么您很可能最终会对它们进行别名,以区分这两个id字段。

        4
  •  2
  •   Larry Lustig    15 年前

    如你所愿。

    大多数(很多?一些?我知道的那些?)框架似乎对主键采用了小写的“id”,对外键采用了“primarykeytablename_id”,至少对于默认的命名约定是这样的。我自己也不喜欢这个惯例,因为我喜欢在双方关系中使用相同名称的密钥。

    我的首选项在两个位置都是entitynameid(例如productid、orderid、orderdtlid等)。

        5
  •  1
  •   tvanfosson    15 年前

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

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

        6
  •  0
  •   James Curran    15 年前

    嗯,“id”是“identification”的缩写,所以“应该”是“id”。

    另一方面,它的发音是“i-d”而不是“id”,所以“id”也是可以接受的。

    对于表的主键,我更喜欢“productID”,而不是“i d”,以便外键关系的两边都匹配。

        7
  •  0
  •   jpg    15 年前

    我倾向于没有“id”或“id”。

    我总是喜欢 表-产品名称

    pkProductName 产品名称 FK产品代码

    和表-产品代码 产品代码 产品代码

    因此,即使您使用SQL或代码,这些关系也是明确和有意义的。