使用还是不使用关系类?


12

我正在根据大量数据构建政府数据库。现在,我遵循ESRI地方政府数据模型的标准方法,但经过修改以适合特定政府的需求。

我注意到在地方政府数据模型中,ESRI使用了很多关系类。我过去曾经使用过关系类,但是倾向于避免使用它们。这是因为我通常看不到为什么我需要与要素类分开的表中有关形状的属性的原因。

对于我收集的几乎所有数据,我仍然看不到这样做的原因。对于Parcel Fabric,我可以看到一些有用的原因,但我仍然认为最好还是直接将属性保留在要素类中。

现在要清楚一点,我将使用关系类将要素类引用到要素类,这个问题更具体地说明了为什么我将数据存储在可以轻松存储在要素类中的非空间表中。

无论如何,感谢您的投入!

Answers:


17

人们将数据组织在单独的表中的原因是由于数据库规范化原则(遵循链接,所有基本原理都在那里)。话虽这么说,ESRI关系类是这些原则的地理数据库级实现。老实说,个人只会在两种情况下使用它们:

  • 当您拥有一些已在数据库中标准化的数据并且想要利用ArcMap编辑工具时。ArcMap使您(可以说)轻松遍历其工具中的关系

  • 当您使用需要GeoDatabase消息传递的GeoDatabase抽象(例如,要素链接的注释,自定义要素类等)时。

尽管人们可能会认为引用完整性是其中的好处之一,但事实是可以通过SQL提示来避免引用完整性,因此,这样做的好处实际上取决于您修改它的工作流程(即,人们仅使用ArcMap来编辑与其他人也可以使用SQL查询或非ESRI工具进行编辑)。


2
哇,好答案。数据库理论这个伟大的世界震惊了我。多谢您的投入!
科迪·布朗

8

考虑更大的局面-GIS数据对于大多数人来说只是一种终结的手段,尤其是在涉及政府实体时。我的经验是,当您需要具有一对多关系的非空间数据空间数据合并时,关系类尤其有用(并且适当),尤其是当它来自外部来源或不断变化时。我在政府实体中遇到的一些实际例子可能有助于说明这一点:

  • 存储有关功能的多个非空间记录(例如,消防栓或阀门的每月检查记录)
  • 从您无法控制的数据源中引用相关记录(例如,从第三方资产管理程序的数据库中读取维护记录)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.