Autor | Zpráva | ||
---|---|---|---|
Ar Profil * |
#1 · Zasláno: 18. 10. 2010, 01:12:11
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 |
#2 · Zasláno: 18. 10. 2010, 01:35:54 · Upravil/a: TomášK
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 |
||
Časová prodleva: 14 let
|
0