Is it a bad idea to have a "kind" column on a join table or should I just create separate tables for each kind?
For example:
Table A: Person
Table B: Song
JoinTable A: Person_Song (Kind: Playlist, CD, Album)
DB columns:
Table: person
Column: id, PK
Table: song
Column: id, PK
Table: person_song
Column: id, PK
Column: person_id, FK
Column: song_id, FK
Column: kind, enum(playlist, cd, album)
or
Table A: Person
Table B: Song
JoinTable A: Playlist (Person <-> Song)
JoinTable B: CD (Person <-> Song)
JoinTable C: Album (Person <-> Song)
DB columns:
Table: person
Column: id, PK
Table: song
Column: id, PK
Table: Playlist
Column: id, PK
Column: person_id, FK
Column: song_id, FK
Table: cd
Column: id, PK
Column: person_id, FK
Column: song_id, FK
Table: album
Column: id, PK
Column: person_id, FK
Column: song_id, FK
Could someone please explain which way is better (or correct) and why?