【问题标题】:Created/Modified Field Naming Conventions? [closed]创建/修改字段命名约定? [关闭]
【发布时间】:2013-06-22 14:47:52
【问题描述】:

考虑使用 CodeIgniter 2+ 的 PHP/MySQL 应用程序,带有一个“产品”表和一个“用户”表 (MySQL)。我很好奇其他人在他们的数据库中为他们创建/修改/分配的字段(外键字段名称)使用了什么。也就是说,您将如何命名“产品”表中用户的外键字段和其他修改/创建的字段?

Table: products
Primary Key: id

Table: users
Primary Key: id

您会使用“name_table-singular_id”格式,以便于参考吗?这样,它就包含了引用表“users”的单数版本。

assigned_user_id
created_user_id
date_created
modified_user_id
date_modified

或者你会使用更简化的东西吗?

assigned_to
created_by
date_created
modified_by
date_modified

对于这类问题,我真的不知道有什么标准。即使是像 SugarCRM 这样的应用程序,在命名方面也往往会有些混杂。他们使用“created_by”和“modified_user_id”。

另外,您是否对日期时间字段使用任何变体? date_、date_time 还是 dt_?我认为这都是偏好。我只需要让我的命名符合标准,这样我就可以为我的 Jamie 的 MY_Model 类的修改版本进一步开发回调。

https://github.com/jamierumbelow/codeigniter-base-model

【问题讨论】:

  • 这也是我一直在努力解决的问题,因为我坚信所有相关表上的“谁”列一致,以便于审计。我使用后者命名,但我使用created_datemodified_date更符合created_bymodified_by

标签: php mysql codeigniter database-design database-schema


【解决方案1】:

我通常会使用后者,因为它实际上是一个关系,而不是只是一个外键。也就是说,如果我实际上是在对数据库进行建模,我会给关系赋予逻辑名称,从而得到看起来更规范的第二个示例。但这是我个人的口味。

【讨论】:

  • 感谢您的回复。与 users.id 字段的关系不能用 {逻辑名称}_user_id 来最好地描述吗?这当然是偏好。
  • 我会这样看:productuser 相关,因为它是 assigned。所以关系的逻辑名称,在productuser 方向将是assigned_to
【解决方案2】:

是在名称中不使用类型的命名约定。所以我更喜欢created_on,modified_on,而不是date_created。 我还希望直接在列名中指明我在“created_by”中使用的外键:所以我使用 created_user_id、modified_user_id。

【讨论】:

    猜你喜欢
    • 2010-10-29
    • 1970-01-01
    • 2016-12-25
    • 2011-10-21
    • 2010-10-15
    • 2014-07-25
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多