We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Tabele referencyjne i relacje many-to-many


maciej.m
08-10-2009, 11:49
Witam,

Mam problem, z którym już pewnie się spotkaliście. Otóż dla dwóch tabel: a i b stworzyłem tabelę referencyjną x. W tabeli b ma się tak do tabeli a, że każdemu rekordowi z a może odpowiadać jeden lub kilka rekordów z b. Do określenia tej relacji służy tabela x, która zawiera pary a.id i b.id. Praktyczne zastosowanie tej struktury ma wyglądać tak, że przy wyciąganiu rekordów z tabeli a, do każdego takiego rekordu powinno być przyporządkowane jeden lub więcej rekordów z b. Pytanie w jaki sposób to praktycznie zrobić, żeby było jak najbardziej optymalnie i wydajnie.

Dla tego przykładu teraz mógłbym wykonać jedno zapytanie:
Kod:
SELECT * FROM `x` LEFT JOIN `a` ON (a.id = x.a_id) LEFT JOIN `b` ON (b.id = x.b_id);
Takie zapytanie oczywiście dawałoby mi zduplikowane rekordy z `a` z różną wartością pól dołączonych z `b`.

Mógłbym też wyciągać pojedyncze rekordy z `a` i dla każdego z nich stosować osobne zapytanie o pary, w których występuje z `b`

Czy macie na to jakieś praktyczne rozwiązanie?

--
Pozdrawiam
MM