What's the correct name for an "association table" (a many-to-many relationship)
Solution 1
Cross reference table. CustomerProductXRef.
Solution 2
There is no "correct" name, but the academic name would be an "Associative Table" (see See the Wikipedia article Associative Entity). Other common names are (in alphabetical order):
- Association table
- Bridge table
- Cross-reference table
- Crosswalk
- Intermediary table
- Intersection table
- Join table
- Junction table
- Link table
- Linking table
- Many-to-many resolver
- Map table
- Mapping table
- Pivot Table
- Pairing table
- Relationship table
- Transition table
Note: This is contents original created by Derek Greer but that was posted as an edit to an accepted answer that totally changed the answer.
Solution 3
"Correct" depends on the modeling methodology in use. I am familiar with Chen, in which this table is the physical implementation of an Associative Entity. I suppose most popular would be directly related to most popular modeling methodology.
Wikipedia lists several names for this type of table.
Solution 4
I was taught and use the term "Join Table"
Solution 5
Depends on whom you ask. They're all correct, use the term that makes the most sense to who you're talking to.
Comments
-
Imran over 3 years
What's the correct or most popular name for an "association table"?
I've heard lookup, associative, resolving, mapping and junction table.
-
onedaywhen almost 14 yearsI have to say I'm totally against your naming convention. If you accept that such a table is a relationship table then the table name should reflect the relationship. I think that most data modellers would call the relationship between customers and products 'Orders'.
-
onedaywhen almost 14 years+1 HOWEVER for a table that tracks a relationship, the 'business' will usually already have a name for that relationship e.g. for the business I work for, the Sales staff who look after specific customers are known as 'account managers'.
-
bvj almost 10 years@onedaywhen "Orders" is normally an example of Many-to-One, not Many-to-Many despite the unfortunate reference to "Products". Furthermore, it might make sense to differentiate "Customer Orders" from "Purchase Orders". In the case of One-to-Many, I'd opt NOT to use a junction table conditions permitting. To your criticism, "Customer Product" is indeed an unusual term combination for a table name.
-
Dijkgraaf over 7 yearsCreated answer that were rollbacked out of the accepted answer as per meta.stackoverflow.com/questions/337963/…
-
Rockin4Life33 over 5 yearsI also use pivot table. Depending on company standards I might just use
student_courses
for a many-to-many on tablesstudents
andcourses
. Some standards I've encountered might enforce a prefix for this; such aslnk
,ref
,pvt
, etc... e.g.lnk_students_courses
.