Deciding between relationship classes, joins, and relates

This topic applies to ArcEditor and ArcInfo only.

NoteNote:

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 cross 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

Relationship classes, joins and relates

Related Topics


Published 6/7/2010