ArcGIS Server Banner

Deciding between relationship classes, joins, and relates (ArcInfo and ArcEditor only)

Deciding between relationship classes, joins, and relates (ArcInfo and ArcEditor only)

Release 9.3 E-mail This TopicPrintable VersionGive Us feedback

NOTE: Although relationship classes can be both created and edited in ArcInfo and ArcEditor, they are read-only in ArcView. The feature classes participating in the relationship class will also be read-only in ArcView.

Relationship classes help ensure referential integrity. For example, the deletion or modification of one feature could delete or alter a related feature. Furthermore, a relationship class is stored in the geodatabase, which makes it accessible to anyone who uses the geodatabase.

On-the-fly relationships, also called relates, are defined as a property of an ArcMap layer. Use them for improved editing performance.

Joins are best suited for labeling and symbology. You define joins through the relational database to make standard SQL queries across the database as well as a variety of data sources.


Relationship classes On-the-fly relates Joins
Typical uses Ensuring data integrity Editing with low overhead Labeling, symbology
Scope Geodatabase Cross database or data source Cross database or data source
Framework Geodatabase data model Defined in map layer Relational database/SQL
User interface for editing ArcMap VBA application in ArcMap SQL queries
User interface for navigating ArcMap ArcMap SQL queries
Composite objects Yes No No
Referential integrity Yes No No
Messaging Yes No No
Attributes Yes No No
Relationship rules Yes No No
Cardinality One-to-one, one-to-many, many-to-many One-to-one, one-to-many, many-to-many One-to-one, many-to-one
Pros Manages referential integrity and messaging behavior

Edited via ArcMap attributes inspector
No editing overhead, can cross workspace and data source type No editing overhead; can cross workspace and data source type; can be used for SQL queries, labeling, and symbology
Cons Incurs editing overhead; must be defined only between tables in same geodatabase; still requires joins for SQL query, labeling, and symbology No referential integrity; no messaging; no support for many-to-many cardinality; still requires joins for SQL query, labeling, and symbology No referential integrity, no messaging, no support for many-to-many relationships, one-to-many relationships involving feature classes not supported

See Also

  • About joining and relating tables
  • Benefits of relationship classes
  • Relationships and ArcGIS