所以我四处寻找,但没有找到满意的答案。
如标题所述,我有不同类型的位置。给定一种类型的位置(即城市),可以推断出粒度较小的位置。即,如果您知道您在俄勒冈州,则意味着您在美国,这意味着您在北美。
我们有引用位置的对象,但粒度并不完全相同。有些项目可能指向社区,有些项目只知道到城市级别,而有些项目只知道一个地区,等等。
我想到了两种组织数据的方式,这是我倾向于的方式:
- 有一个通用的“位置”表,其中有一个位置“类型”和一个引用自身的“父位置”。所以会有一个美国类型的国家条目,以及一个引用美国的俄勒冈州类型的条目。IE
然后,您可以让对象引用其主键之外的位置,然后可以推断出其他位置。这有意义还是有更好的方法可以组织数据?
- 我考虑的另一种方法是为每个位置“类型”使用不同的表,但问题是我们的对象引用它,因为对象的最细粒度类型的位置并不总是相同的。
如果我稍后将其他位置类型滑入,例如城市和地区之间的县,这可能会出现问题吗?我认为这不会比使用单独的表更成问题,但也许有更好的方法可以让我以合乎逻辑的方式跟踪事物。