Select to view content in your preferred language

1-N Relationship Class : Best Design and Implementation Practices / Design Patterns

2083
0
11-22-2011 12:36 PM
JamesFox1
Frequent Contributor
I have a design question relating to the best practices for a relationship class from an object oriented as well as an ArcGIS best viewpoint.

I have two unrelated feature classes (which could be in separate feature datasets or not). Features in both of these feature classes are uniquely identified by their id column per user requirements, separate from the ArcGIS created and maintained primary key of OBJECTID. In a large data environment, this ID column would be used to be indexed against for sql queries and the business rule layer of the system would have the option of enforcing database level constraints against these columns oustide of ArcGIS.

Now I would have a reference table that would cross reference these two ID columns in a 1-N (one to many) fashion. I would like to set up some relationship classes (RCLs) for easy of viewing and editing in ArcDesktop by being able to "drill down" from one of the two feature classes into the other via the cross reference table.

The two approaches are a "top down" type of relationship class, where the original is the cross reference table "down" into the individual feature classes. One would be a 1-1 and the 1-N simple RCL. The other approach would be a "bottom up" method taking the opposite approach defining the individual feature classes as the origin and the cross reference table as the destination of the RCL (again one 1-1 and the other a 1-N RCL) 

For example, say you have a hot dog franchise in Chicago. You could have two feature classes:

fclStreetSegements (in a feature dataset fdsSTREETS) - identified by an ID column STRSEGID
fclHDStands (in a feature dataset fdsSUPERDOG_STANDS) - identified by an ID column HDSTANDID
with a higher level 1-n cross reference list attribute table STREET_STANDS linking STRSEGID and HDSTANDID columns...

I have tried both of these methods and they both behave the same, but I have only tried this for small amounts of data. What would be the best practice to take from an implementation, as ESRI standpoint for these two approaches.

If it really doesn't matter, my gut feeling would be that the "top down" would be a better approach from a logical and object oriented design perspective because the cross reference between the features would be more pertinent to the relationships and as such the relationships should not be tied to any of the particular features involved. However, I not currently aware of the large data implications involving using ArcGIS, ArcDesktop (as well as ArcObject based client software access) nor any consequences of using bottom up vs. top down relationships or the prefered or recommended design pattern between the two, if there is any.
      



-Jim
0 Kudos
0 Replies