数据库表设计

时间:2011-03-02 17:09:32

标签: ruby-on-rails database database-design

我有一张房产列表。我需要在这些列表中添加城市。将城市列表拆分成自己的表是最佳做法吗?

我希望用户在添加新属性时能够从城市列表中进行选择。

顺便说一下,这是一个Rails项目。

3 个答案:

答案 0 :(得分:2)

在这种情况下,城市查找表是有意义的。

如果需要,这还可以让您在将来为每个城市添加更多信息。

答案 1 :(得分:2)

如果每个属性只有一个城市,则将其放入属性表中并没有什么特别的错误。如果还有更多,那么除了使用城市表之外别无选择。

或者,如果您想从下拉列表中选择城市而不允许添加,那么拥有城市表可能是一个好主意。如果您这样做,那么您可能希望在属性表中存储cityid而不是城市名称。这样,当有人更改城市的名称(事实上可能不会经常发生)时,您只需要更改一条记录。当然,如果你有一个cities表,你必须有一个外键,并确保在属性表中索引city_id以保持数据的完整性。

答案 2 :(得分:0)

是。通常,最佳做法是规范化数据库模式,这样就不会在属性列表表中的多个属性列表记录中重复相同的城市名称。

在某些情况下,出于性能原因,您可能希望进行非规范化。我不认为你的情况是这种情况之一,直到它证明自己为止(即表读取变得非常慢。)即便如此,在对模式进行非规范化之前,你可以进行优化。