对城市,地区和邮政编码进行建模的好方法是什么?

时间:2011-06-28 15:18:20

标签: database grails dns modeling

我正在考虑对不同国家/地区的城市,地区,邮政编码进行建模的“最佳”方式。 (应用程序应使用不同的语言)

我的第一个猜测是:

class City {
    String name
    String region
    static hasMany = [postcodes:PostCode]
    static belongsTo = [region:Region]
    static constraints = {
        name size:2..100
        region nullable:true
    }
}

现在的问题是:

  • 一个城市可以属于多个地区吗? (美国/Bundesländer/社区/...)
  • 由于所有这些都是最终的,没有新的城市,地区或邮政编码,我认为没有使用数据库并将其放入枚举中!?
  • 由于我想将不同国家/地区的数据分开,我必须将其添加到城市中。我看了一下multiTenant-plugin,但我不太确定这不是很多!?

可能有人之前已经处理过这个问题并且可以分享一些见解。

非常感谢 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

  

一个城市可以属于多个城市吗?   区域?   (美国/Bundesländer/社区/...)

这取决于你。您尚未明确说明某个地区是什么。根据您的定义,一个地区可能是x城市或西欧的郊区。如果区域没有由州界限定义,则城市可能属于多个区域。例如,“巴黎”可以包含在“法国”地区以及“西欧”地区。

一个简单的解决方案是将区域限制为状态边界,但这可能不是一个好的解决方案,具体取决于您需要的数据。您可以创建一个字符串数组来存储您的区域,但如果您没有说明需要哪些数据,则很难选择替代方案。根据你所写的内容,我认为一个单独的“字符串国家”是合适的,因为你可以按国家排序,你的地区可以保持原样。

  

由于所有这些都是最终的,没有新的   我想过的城市,地区或邮政编码   关于不使用数据库并放   进入枚举!?

您可以这样做,但在数据库中管理起来要容易得多。

  

因为我想分开数据   不同的国家,我必须添加这个   去一个城市。我看了看   multiTenant-plugin但我并不完全   确定这不是很多!?

我没有使用过该插件,因此我无法帮助您,但如果您只是想按国家/地区分开数据,那么添加国家/地区字段和排序将非常简单。