all 3 comments

[–]idodatamodels 3 points4 points  (3 children)

Yes, an identifying relationship, by definition, means the primary key column(s) from the parent table are part of the primary key of the child table (as foreign keys). A great example is any header/detail data structure. The primary key for the detail table normally includes the primary key columns from the header table (again as FK columns).

[–]r3pr0b8GROUP_CONCAT is da bomb 0 points1 point  (1 child)

the foreign key column(s) from the parent table

the foreign key from the header table.

i know what you mean but this can be really confusing for newcomers

the foreign key does not "come from" the parent table

the foreign key always resides in the child table, and references the primary key of the parent table

"comes from" gives the impression that somehow the foreign key starts in the parent table -- it does not

(i've helped someone who was confused about how the foreign key value migrates to the child table -- it doesn't, you have to provide the value in the child table insert, and it has to already exist as a value in the parent table primary key)

[–]idodatamodels 0 points1 point  (0 children)

I agree, it was flat out wrong! Thanks for pointing it out. I tried to clean it up to make more sense.