Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 25. 8. 2010, 09:34:16
Ahoj,
jaký by jste zvolili systém ukládání dat, pokud může být položka vedená ve více kategoriích a) existují dvě tabulky - polozka, kategorie TABULKA POLOZKA ID (INT), JMENO (TEXT) TABULKA KATEGORIE ID (INT), CATID (TEXT), JMENO (TEXT) seznam kategorií se bude ukládat do pole CATID oddělené čárkou, tedy např. KATEGORIE: ID = 1, JMENO = Prvni Kategorie KATEGORIE: ID = 2, JMENO = Druha Kategorie KATEGORIE: ID = 3, JMENO = Treti Kategorie POLOZKA: ID = 1, CATID = 2,3, JMENO = Prvni Polozka POLOZKA: ID = 2, CATID = 3, JMENO = Druha Polozka S tím, že např. pro výpis položek v kategorii použiju: SELECT p.*, k.text as kategorie_jmeno , k.id as kategorie_id FROM `kategorie` AS k LEFT JOIN `polozka` AS p ON p.catid IN (k.id) WHERE k.id = 2 b) existují tři tabulky - polozka, kategorie, polozka_vs_kategorie TABULKA POLOZKA ID (INT), JMENO (TEXT) TABULKA KATEGORIE ID (INT), JMENO (TEXT) TABULKA POLOZKA_VS_KATEGORIE ID_POLOZKA, ID_KATEGORIE s tím že se vztahy mez kategorií a položkou ukládají do poslední tabulky: ID_POLOZKA = 1, ID_KATEGORIE = 2 ID_POLOZKA = 1, ID_KATEGORIE = 3 Jde mi o to jaký typ uložení se bude lépe spravovat, který typ má omezení v něčem, atd. (při testování jednoduchých SELECT, INSERT nebo UPDATE jsem na žádný omezení u obou nenarazil) Děkuji |
||
Kajman_ Profil * |
#2 · Zasláno: 25. 8. 2010, 10:10:53
b
|
||
__construct Profil |
#3 · Zasláno: 25. 8. 2010, 10:17:48
Jednoznačne
b s tým, že v tabuľke polozka_vs_kategorie by som ukladal ID_POLOZKA a ID_KATEGORIE ako dvojicu primárnych kľúčov
|
||
Mastodont Profil |
#4 · Zasláno: 25. 8. 2010, 10:22:07
Ne, jako jeden primární klíč složený ze svou polí.
|
||
H13 Profil |
#5 · Zasláno: 25. 8. 2010, 10:45:04
Díky, pokud to dobře chápu:
PRIMARY_KEY('id_polozka', 'id_kategorie') - je "jeden primární klíč složený ze dvou polí" |
||
Mastodont Profil |
#6 · Zasláno: 26. 8. 2010, 11:28:16
Ano
|
||
Časová prodleva: 14 let
|
0