Autor Zpráva
Ar
Profil *
Chci se zeptat někoho kdo se zabývá navrhováním tabulek, strkutur databází atd., jak by řešil to, když mám tabulku zemí, který přiřazuju k nějaký záznamům v jiný tabulce a chci, aby každá země mohla být ve více záznamech v jiný tabulce a aby každej záznam v jiný tabulce mohl mít více zemí.

To by se asi jednoduše udělalo přes vazební tabulku, ale já bych ještě chtěl dát nějak označit první zemi, že je hlavní a že ty ostatní jsou druhořadý.

A přemýšlim, jestli přidat jen do tabulky zemí nějakej sloupec označující jesli se jedná o hlavní zemi a nebo jestli to rozdělit na dvě tabulky hlavni země a vedlejši, kde hlavni by nebyla N:M, protože tam by se přiřazovala jen jedna země vždycky, ale vedlejší by už bylo N:M a nebo je ještě nejaká jiá možnost?

A pak jak by vypadal dotaz do databáze, když bych to udělal tim prvním způsobem, aby mi to vypsalo jen tu hlavní zemi s přiřazenými záznamy z ostatních tabulek?
TomášK
Profil
Doporučuju tři tabulky - Země, vazební, Nějaké záznamy. Pokud je některá země hlavní/vedlejší pro veškeré Nějaké záznamy, které jsou k ní přiřazeny, pak sloupeček je_hlavni patří do tabulky zemí, pokud jen pro některé, pak patří do vazební tabulky.
Dotaz, který propojí nějaké záznamy a hlavní země bude vypadat
SELECT 
    * 
FROM
zeme
JOIN nejake_zaznamy_zeme ON nejake_zaznamy_zeme.zeme_id = zeme.id AND nejake_zaznamy_zeme.je_hlavni
JOIN nejake_zaznamy ON nejake_zaznamy_zeme.nejake_zaznamy_id = nejake_zaznamy.id

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: