【发布时间】:2010-09-16 04:37:12
【问题描述】:
应该如何命名系统范围内使用的列。例如城市。 在城市查找表中,该列称为city_id,city_name。现在城市被用于其他地方,比如事件——我称之为 event_city,它指的是 city_name。然后在用户配置文件中有 user_city 再次执行相同操作。即使它们都是相同的东西,这些都应该根据表格被称为相同还是不同?
【问题讨论】:
应该如何命名系统范围内使用的列。例如城市。 在城市查找表中,该列称为city_id,city_name。现在城市被用于其他地方,比如事件——我称之为 event_city,它指的是 city_name。然后在用户配置文件中有 user_city 再次执行相同操作。即使它们都是相同的东西,这些都应该根据表格被称为相同还是不同?
【问题讨论】:
您应该对引用 city_id 的 Cities 表使用外键引用。
其他表不需要改名字,只要坚持city_id外键即可。
【讨论】:
来自 Omar Khayyam 的 Rubaiyat:
我自己年轻的时候确实很频繁
医生和圣徒,并听到了很棒的论点
关于它和关于它;但永远
从我进去的同一扇门出来。
关于如何做到这一点的讨论很多,但很少达成一致。选择一个合理的方案并坚持下去 - 一致性可能是最重要的。
我可能会选择:
如果单个表中有两列与 City 相关,我只会使用限定名称:
顺便说一句,我删除了“城市 ID”列,因为您似乎要加入城市名称。但是,使用 CityID 并让其他表加入到该 ID 中,使用 CityID 可能会更好。对于以美国为中心的示例,这允许在 multiple states 中出现相同的城市名称。
【讨论】:
确切地说,您的命名约定不如您坚持它重要,但我不建议在事件表 event_city 上命名您的“城市名称”字段。相反,我建议使用 city_name,因为它更清晰。很明显,这是事件的城市名称,因为它在事件表上。
【讨论】:
我会将 event_city 更改为 city_id。
(我假设 event_city 将是一个城市的引用,并匹配 city_id 列中的值。)
【讨论】: