dotazresim aktualne tento problem:
prosím o vaše komentáře - ať se můžu nějak rozhodnout
je to pokus o neco univerzalniho - což je chtěný cílový stav
ten kdo potkal EZpublish, tak dělam velmi velmi velmi zjednodušeně něco podobného
pro názornost si představte filmový web - film, herec, trailer...
mám tabulku OBJEKT - ve které která obsahuje všechny objekty, tj. objekty všech definovaných typů
a potřebuji nadefinovat spojením mezi temi objekty vazbou M:N, takže mám další tab - např. OBJEKT2OBJEKT - která obsahuje minimalné sloupce objekt_1_id, objekt_2_id
jenze při ukládání této vazby se mi může stát, že:
- přidávám herci film - tudíz objekt_1_id je Herec (1) - a objekt_id_2 je Film (3)
- přidávám filmu herce - tudíž objekt_1_id je Film (3) - a objekt_id_2 je Herec (2)
budu-li chtit z filmu pak zjistit herce a seradit je podle jména dostávám se do problémů:
1/ kostrbaté řešení, které si dokážu představit
- zjistím ID z možných uložení A:B + zjistím id z možných uložení B:A
- zjistena id pouziju pro sql pro vypis objektu
2/ budu ukladat data duplicitně
- vzdy když ulozim A:B, uložím i B:A
3/ doplním třetí sloupec do spojovaci tabulky, kde budu definovat typ spojení A_B nebo B_A
- pri ukladani sahnu do tab a zjistim, zda je existuje A_B nebo B_A a podle toho ulozim ve spravnem poradi
- pri vypisu pak opet zjistim spravne poradi a podle toho udelam join
4/ ? - jsou nějaké další možnosti?
pro co by jste se rozhodli vy?
---
za jakékoli vaše komentáře budu rád
|