【问题标题】:Field naming question字段命名问题
【发布时间】:2010-09-16 04:37:12
【问题描述】:

应该如何命名系统范围内使用的列。例如城市。 在城市查找表中,该列称为city_id,city_name。现在城市被用于其他地方,比如事件——我称之为 event_city,它指的是 city_name。然后在用户配置文件中有 user_city 再次执行相同操作。即使它们都是相同的东西,这些都应该根据表格被称为相同还是不同?

【问题讨论】:

    标签: database naming


    【解决方案1】:

    您应该对引用 city_id 的 Cities 表使用外键引用。

    其他表不需要改名字,只要坚持city_id外键即可。

    【讨论】:

      【解决方案2】:

      来自 Omar Khayyam 的 Rubaiyat:

      我自己年轻的时候确实很频繁
      医生和圣徒,并听到了很棒的论点
      关于它和关于它;但永远
      从我进去的同一扇门出来。

      关于如何做到这一点的讨论很多,但很少达成一致。选择一个合理的方案并坚持下去 - 一致性可能是最重要的。

      我可能会选择:

      • 城市(名称,...)
      • 事件(...,城市,...)
      • UserProfile(..., City, ...)

      如果单个表中有两列与 City 相关,我只会使用限定名称:

      • UserDetails(..., Home_City, ..., Work_City, ...)

      顺便说一句,我删除了“城市 ID”列,因为您似乎要加入城市名称。但是,使用 CityID 并让其他表加入到该 ID 中,使用 CityID 可能会更好。对于以美国为中心的示例,这允许在 multiple states 中出现相同的城市名称。

      【讨论】:

        【解决方案3】:

        确切地说,您的命名约定不如您坚持它重要,但我不建议在事件表 event_city 上命名您的“城市名称”字段。相反,我建议使用 city_name,因为它更清晰。很明显,这是事件的城市名称,因为它在事件表上。

        【讨论】:

          【解决方案4】:

          我会将 event_city 更改为 city_id。

          (我假设 event_city 将是一个城市的引用,并匹配 city_id 列中的值。)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-06-06
            • 2011-06-04
            • 2011-09-28
            • 2021-09-30
            • 2012-11-14
            • 2013-07-01
            • 2010-09-12
            相关资源
            最近更新 更多