Ik ben in dubio hoe ver ik moet gaan om een abstracte join table (voor in een CMS) op te zetten om voor verschillende entiteiten een één-op-meer relatie te kunnen maken.
Ik wil met een generieke join-table alle soorten koppelingen maken die ik normaal zou doen met een referentie-key in de table zelf.
Hieronder mijn idee:
table: page
table: join
In de bovenstaande join-table weet ik aan de hand van de join_key dat 'contact' en 'privacy' children zijn van 'home'. Ik kan op deze manier nog veel meer relationele data opslaan in die tabel:
table: join
Ik weet nu de autheur en de hoofdafbeelding van 'home': user_id=12 en file_id=87
Doen meer mensen dit? Is het handig? Gaan al die joins (afgezien van de juiste INDEXES) mijn performance aanzienlijk verslechteren? Mij persoonlijk lijkt dit een hele handig model, afgezien van de grote queries die ik moet gaan schrijven... ik hou alle entiteit-tabellen schoon van referenties. En mocht ik beslissen om in de toekomst 2 tabellen te joinen hoef ik hun individuele structuur niet te wijzigen, maar verzin ik gewoon een nieuwe unieke join_key voor de join-table.
Ik wil met een generieke join-table alle soorten koppelingen maken die ik normaal zou doen met een referentie-key in de table zelf.
Hieronder mijn idee:
table: page
page_id | page_title | page_body | page_date |
---|---|---|---|
1 | home | ... | ... |
2 | contact | ... | ... |
3 | privacy | ... | ... |
table: join
join_key | join_master | join_slave |
---|---|---|
page_children | 1 | 2 |
page_children | 1 | 3 |
In de bovenstaande join-table weet ik aan de hand van de join_key dat 'contact' en 'privacy' children zijn van 'home'. Ik kan op deze manier nog veel meer relationele data opslaan in die tabel:
table: join
join_key | join_master | join_slave |
---|---|---|
page_author | 1 | 12 |
page_header_img | 1 | 87 |
Ik weet nu de autheur en de hoofdafbeelding van 'home': user_id=12 en file_id=87
Doen meer mensen dit? Is het handig? Gaan al die joins (afgezien van de juiste INDEXES) mijn performance aanzienlijk verslechteren? Mij persoonlijk lijkt dit een hele handig model, afgezien van de grote queries die ik moet gaan schrijven... ik hou alle entiteit-tabellen schoon van referenties. En mocht ik beslissen om in de toekomst 2 tabellen te joinen hoef ik hun individuele structuur niet te wijzigen, maar verzin ik gewoon een nieuwe unieke join_key voor de join-table.
heeeeee ..... hoe is het?