代码之家  ›  专栏  ›  技术社区  ›  Erik Öjebo

数据库表定义中列的排序是否有标准/约定?

  •  1
  • Erik Öjebo  · 技术社区  · 16 年前

    例如,主键应该是第一列吗?外键是否直接跟随主键,还是应该放在最右边的桌子上?

    如果不同DBMS的约定不同,则本例中的DBMS为Microsoft SQL Server 2005。

    谢谢/埃里克

    8 回复  |  直到 16 年前
        1
  •  6
  •   Lieven Keersmaekers    16 年前

    我不知道有什么标准,但我们构造柱的方式是

    1. 有外键吗
    2. 数据

    我们的 数据列(如注释)放在末尾。这使得在查询分析器中查看尽可能多的数据变得更加容易,而无需向右滚动。

        2
  •  2
  •   edosoft    16 年前

    我总是这样组织我的表格:

    1. 主键
    2. “跟踪”列(DateModified、ModifiedBy等)
    3. 有外键吗
    4. 数据
        3
  •  1
  •   Fermin    16 年前

    我不确定集合约定,但我们总是将ID/主键列作为表中的第一列。我想这只是因为它让我们更清楚地看到pk。我要说的是,fk字段也遵循这一点,但之后就没有真正的标准了,您可以按数据类型来做吗?

    此外,这不是一个既定的最佳实践,只是个人的选择。

        4
  •  1
  •   workmad3    16 年前

        5
  •  1
  •   anon anon    16 年前

    据我所知,没有正式的标准,但通常的做法是先放置主键(通常是代理键),然后根据功能对其他字段进行分组。因此,在“person”表中,可以将包含此人地址数据的字段分组在一起。大多数人在表定义之外添加FK、索引和其他约束。

        6
  •  0
  •   Chathuranga Chandrasekara    16 年前

    嗯。。我知道没有限制。这只是一个明确的问题。

        7
  •  0
  •   Guy    16 年前

    我同意上面的大多数帖子,主键优先(至少)。剩下的是个人偏好。如果你有一个标准,那就坚持这个标准。

    我更喜欢将列逻辑地保持在一起。有时,完全规范化的数据结构并不合适,因此在同一个表中存储了“次要实体”(即不删除空值)。例如,地址字段,或者不同的电话、移动电话、工作电话列放在一起。

    我能举的最突出的例子就是如何不这样做。如果开发人员自动生成一个模式,并且列是按字母顺序创建的(甚至PK隐藏在表结构的中间),那么这是最烦人的。

        8
  •  0
  •   James Anderson    16 年前

    根据edoode:-

    Primary key(s) 
    'Tracking' columns (DateModified, ModifiedBy and such) 
    Any foreign keys 
    Data 
    

    Fixed width 'not null' columns
    Fixed width 'nullable' columns
    Variable Width columns VARCHAR NVARCHAR etc.
    CLOBS
    BLOBS