Ahoj, chtěl bych se zeptat jak udělat strukturu databáze, kde bych k 1nomu záznamu přiděloval více sekcí konkrétně jde o filmy.
Napadlo mě udělat pro každou sekci zvlášť sloupec, ale nevím jestli to je nejlepší způsob jak to udělat.
předem děkuji za každou odpověď.
Fórum › MySQL
Více sekcí pro 1 záznam
co vyuzit "pokrocileho" navrhu databazi?
naprikad tabulku film pak tabulku sekce a treti tabulka kde bude jen id filmu a id sekce - jeden radek jedno spojeni filmu do sekce (vztah M:N)
Přihodím jeden odkaz: http://www.linuxsoft.cz/article.php?id_article=854.
Trochu v tom mám guláš, jestli to chápu správně budu mít 1 tabulku kde budu mít filmy 2. tabulku kde budou sekce a 3. tabulka kde bude ID filmu v jednou sloupci a v dalším sloupečku bude ID_SEKCE například (1,3,5,12) a podle těchto ID si najdu název sekcí ?
To Hacky : jo...
Kdyz znas film tak vyhledas ve spojovaci tabulce jeho ID... tim ziskas seznam vsech ID kategorii, do kterych patri..
Pak jeste dohledas co to konkretne je ve treti tabulce.
Z druhe strany to same.. vemes ID kategorie a zjistis vsechny filmy co do ni patri (resp. jejich ID)..
a ak mozem aj ja tresnut svoje "special" riesenie... tak tu je :)
budes mat stlpec zaner a v nom id zanrov do ktorych patri... teda napr takto... -5-1-9-
a pri dotaze pri otvoreni zanru filmy vyhladas napr. dotazom WHERE zaner LIKE '%-5-%'
To marioff : sice to rozdelit do vic tabulek trochu zpomali, ale kdyz sou tam indexy tak je to jeste v pohode..
ale vyhledavani %-id-% tak to mozna tak kdyz si delas databazi jen pro sebe.. na neco s vetsi zatezi by to byla nahozena opratka
jj vacsie zatazenie si uvedomujem... ale predsa len ked bude mat index a nebude mat extremne vela navstev, + to ze budu len 2 tabulky... neocakaval by som nejake problemy :)
http://www.linuxsoft.cz/article.php?id_article=784 podle tohoto jsem myslel že udělám ty sekce
marioff
ale predsa len ked bude mat index a nebude mat extremne vela navstev, + to ze budu len 2 tabulky
Index u tohoto moc nepomůže. Když jsou u LIKE procenta z obou stran, tak to musíš projít řádek po řádku, leda že bys tam měl fulltext. Argument, že to budou jen dvě tabulky je pěkná pitomost :o) Když tam budeš mít vázací tabulku, budou celkem tři. Zas takový rozdíl to není.
Navíc, pokud relaci M:N budeš dělat přes vázací tabulku, MySQL bude mít všechno v paměti hezky zarovnané a přiřadit řádky z jednotlivých tabulek podle jednoho celého čísla podle mě bude rychlejší než filtrování skrz LIKE '%…%'. Porovnat dvě čísla je rychlejší než matchovat (jak se to řekne česky?) dva řetězce, ne?
Chtělo by to benchmark pro různě velké množiny :-) Ale na to jsem moc líný…
Hacky
SET ne. Co když budeš chtít k jednotlivým kategoriím časem přidat třeba nějaký popis? Přidáš sloupec do tabulky se záznamy a u každého se bude udržovat popis? Víš, jak to budeš náročné na UPDATEy? Navíc redundance dat je redundance dat. A když chceš více kategorií, no to už vůbec ne.
Abych si přihřál vlastní polévčičku, doporučuji článek o normálních formách[1]. Zaměř se na ty příklady s fotoalby a tagy.
[1] http://programujte.com/?akce=clanek&cl=2008071900-normalizace-relacnich-databazi
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Načítání více stejných sekcí z INI souboru — založil vojtěch
Vice domen pro localhost — založil netman92
Více delete pro button — založil krpik
Ukládání pro více počítačů — založil Coal_Asasin
Moderátoři diskuze