Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am building a government database from a massive amount of data. Now I am following the standard approach of the ESRI Local Government Data Model, but modified to fits the needs and wants of a specific government.

I've noticed that in the Local Government Data Model ESRI uses a lot of relationship classes. I've used relationship classes in the past, but tend to steer clear of them. This is because I usually don't see a reason why I would want attributes about a shape in a separate table from the feature class.

For almost all of the data I am assembling I still cannot see a reason for this. For Parcel Fabric I can see some reasons where it would be helpful, but still I believe it would be best to still keep the attributes directly in the feature class.

Now to be clear I am going to use relationship classes to reference feature classes to feature classes, this question is more specified to why I would store data in a non-spatial table that could just as easily be store in a feature class.

Anyways thanks for any input folks!

share|improve this question
up vote 15 down vote accepted

The reason that people organize data in separate tables is because of Database Normalization principles (follow the link, all the rationale is there). That being said, ESRI Relationship Classes are a GeoDatabase-level implementation of a those principles. Honestly, I would personally only use them in two instances:

Although people may claim that referential integrity is one of the benefits, the truth is that it can be circumvented with a SQL prompt, so the benefit of this really depends in the workflow that you have for modifying that (i.e do people use only ArcMap to edit vs do people also edit with SQL queries or non-ESRI tools).

share|improve this answer
Wow, great answer. The great big world of database theory has just blown my mind. Thanks a ton for the input! – Cody Brown Nov 12 '12 at 13:53

Think about the bigger picture - GIS data is just a means to an end for most people, especially when it comes to government entities. My experience has been that relationship classes are primarily useful (and appropriate) when you need to incorporate non-spatial data with one:many relationships to your spatial data, especially if it is from an external source or changes constantly. Some real-world examples I have encountered with government entities may help illustrate this:

  • Storing multiple, non-spatial records about a feature (e.g. monthly inspection records for a hydrant or valve)
  • Referencing related records from a data source you don't control (e.g. reading maintenance records from the database of a third-party asset management program)
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.