Why does ArcGIS allow 1:m join?

المشرف العام

Administrator
طاقم الإدارة
From ArcGIS help file "About joining and relating tables ":

One-to-many and many-to-many relationships

When using data where a one-to-many or many-to-many relationship exists, you should use a relate or relationship class to establish the relationship between the datasets. However, it is possible to create a join under these circumstances.

The above seems confusing (or even contradictory) to me. I agree with the first sentence that 1:m relationship should be established using relate.

But I don't see why 1:m join is even allowed. Conceptually, join copies attributes of the join table to the attributes of the base table. Allowing 1:m join creates an obvious problem that attributes of multiple (i.e. a unknown number of ) records from the join table need to copied to the base table, which can only have a fixed number of fields.

What follows in the ArcGIS documentation shows inconsistency.

When you create a join in such a case, there are differences between how tools and other layer-specific settings work depending on the data source. If you are using geodatabase data to create the join, all matching records are returned. If you are using nondatabase data, ..., only the first matching record is returned.

...

Caution:In all cases of 1:M joins, only the first matching record is joined and displayed in the layer's attribute table.

Why does ArcGIS introduce this mess with GeoDatabase?

What's the motivation behind, and is it really indispensable (i.e. can't be done otherwise)?



أكثر...
 
أعلى