Zadejte hledaný výraz...

Hudební žebříček – jak uchovávat data?

Bacon
verified
rating uzivatele
(2 hodnocení)
24. 6. 2012 17:11:37
Dobrý podvečer,
miluji statistiky, a proto bych si hrozně rád uchovával různé hitparády v databázi. Otázkou ale je, jak to udělat efektivně. V první řadě nastíním, jaké tabulky plánuji používat pro uchovávání samotných písní:
artists:
id | name
titles:
id | title
labels: (vydavatelství)
id | name_short | name_long
songs: (propojení předchozích tabulek, jedna píseň může mít více řádků - více interpretů, proto je title uložen odděleně, blbost?)
id | title_id | artist_id | artist_role (main / featured) | artist_order | label_id
A nyní uložení samotných hitparád:
weeks: (ale pozor, jeden řádek - hitparáda - může být společná pro dva týdny)
id | year | week
201201 | 2012 | 01
...
20125152 | 2012 | 5152
NEBO
1 | 2012 | 01
...
50 | 2012 | 5152
NEBO úplně jinak, kde by se to dalo ošetřit, pro případ, že by bylo potřeba mít např. 3 týdny v jednom řádku?
months:
id | year | month
201201 | 2012 | 01
...
201212 | 2012 | 12
NEBO
1 | 2012 | 01
...
12 | 2012 | 12
week_charts:
id | week_id | chart_type_id | rank | song_id
1 | 201201 | 1 | 1 | 252
2 | 201201 | 1 | 2 | 978
...
20 | 201201 | 1 | 20 | 571
A pro další týden, či jiný typ hitparády dalších 20 řádků,...
month_charts:
id | month_id | chart_type_id | rank | song_id
Otázky:
Dává to takto smysl? Je na tom něco vyloženě špatně? Přijde mi, že ukládání všech pozic všech hitparád do jedné tabulky je špatně a povede to k vééélkému množství dat. Hledal jsem příklady, jak by se to mělo dělat, na internetu, ale bohužel je to asi dost specifické téma.
Původně jsem možná i zamýšlel ukládat týdenní i měsíční žebříčky do jedné tabulky, ale pro přehlednost jsem se to rozhodl rozdělit do dvou tabulek. Stejně tak mě i napadlo rozdělení na tabulky ve stylu week_chart_201201, week_chart_201202,... ale to by byla zase spousta tabulek, takže si člověk nevybere. Možná by bylo i fajn ukládání do nějakých XML souborů, i tato varianta mě napadla.
Dále ukládání písní... přemýšlel jsem, že bych ke každé písní mohl uložit i video, ale nevím, jestli je lepší vytvořit další tabulku videos, kde bude vždy id | song_id | url, nebo to prostě jen přidat do tabulky titles, nebo songs. Pokud bych to přidal do songs, zbytečně by se data duplikovala při více interpretech v jednom díle, záměrem je, aby tabulka songs pouze propojovala interprety, jejich role a písně.
Děkuji za vaše názory :) Není to žádná kritická aplikace, jen blbůstka pro vlastní zabavení a naučení se s frameworkem.
24. 6. 2012 17:11:37
https://webtrh.cz/diskuse/hudebni-zebricek-jak-uchovavat-data#reply778387
Co takhle přidat další sloupec do dané tabulky? nebo vytvoř zprostředkovací tabulku.
24. 6. 2012 17:23:21
https://webtrh.cz/diskuse/hudebni-zebricek-jak-uchovavat-data#reply778386
Bacon
verified
rating uzivatele
(2 hodnocení)
24. 6. 2012 17:25:28
Napsal Kontras;811659
Co takhle přidat další sloupec do dané tabulky? nebo vytvoř zprostředkovací tabulku.
Pokud máš na mysli ta videa, tak u těch to asi vyřeším další tabulkou, tam bude ta relace 1:1 (1 píseň - 1 mediální soubor). Spíš mě zajímá názor, jak efektivně ukládat ty hitparády, kde to může být cca 20 - 100 pozic / hitparáda / vydání hitparády.
24. 6. 2012 17:25:28
https://webtrh.cz/diskuse/hudebni-zebricek-jak-uchovavat-data#reply778385
MAHI
verified
rating uzivatele
(15 hodnocení)
24. 6. 2012 18:41:49
Napsal Bacon;811658
Otázky:
Dává to takto smysl? Je na tom něco vyloženě špatně? Přijde mi, že ukládání všech pozic všech hitparád do jedné tabulky je špatně a povede to k vééélkému množství dat. Hledal jsem příklady, jak by se to mělo dělat, na internetu, ale bohužel je to asi dost specifické téma.
Původně jsem možná i zamýšlel ukládat týdenní i měsíční žebříčky do jedné tabulky, ale pro přehlednost jsem se to rozhodl rozdělit do dvou tabulek. Stejně tak mě i napadlo rozdělení na tabulky ve stylu week_chart_201201, week_chart_201202,... ale to by byla zase spousta tabulek, takže si člověk nevybere. Možná by bylo i fajn ukládání do nějakých XML souborů, i tato varianta mě napadla.
Dále ukládání písní... přemýšlel jsem, že bych ke každé písní mohl uložit i video, ale nevím, jestli je lepší vytvořit další tabulku videos, kde bude vždy id | song_id | url, nebo to prostě jen přidat do tabulky titles, nebo songs. Pokud bych to přidal do songs, zbytečně by se data duplikovala při více interpretech v jednom díle, záměrem je, aby tabulka songs pouze propojovala interprety, jejich role a písně.
To je taková klasická obava. Velké množství dat opravdu nevadí a když to má dobrý index (respektive indexy) tak není co řešit. Je běžné, že tabulka má stovky tisíc nebo miliony řádků - a to je ještě malá. Když to porovnáš s databázemi některých firem (např. Audi, HP), ty mají ve svých databázích terabajty dat a zvládají to. :-) Akorát samozřejmě nemají MySQL ale většinou Oracle.
Týdenní a měsíční žebříčky oddělit můžeš - plati, že entitní typy bys měl vždy oddělit. Ale možné je cokoliv z následujícího:
- oboje do jedné tabulky
- oboje do jedné tabulky s vytvořenými views
- každé do své tabulky
XML je dobrá technologie, svým způsobem je více "podobná" realitě než relační tabulky které na sebe odkazují čísly. :-) Ale pro tvoje potřeby je to spíše zbytečné.
Co se týče videa - musíš si rozmyslet, jaký vztah tam budeš mít (1:1, 1:n, m:n). K jedné písni může být více videoklipů. Pak existují i remixy a různé společné písně, které nazpívá více skupin/zpěváků. Chceš pak tu píseň mít jenom u jednoho nebo u obou?
Při vztahu 1:1 a pouhém URL v databázi je další tabulka naprosto zbytečná. Pokud to bude jinak, určitě se další tabulka bude hodit.
24. 6. 2012 18:41:49
https://webtrh.cz/diskuse/hudebni-zebricek-jak-uchovavat-data#reply778384
Bacon
verified
rating uzivatele
(2 hodnocení)
24. 6. 2012 19:24:05
marcus33cz: Díky moc! U toho videa, tam to bude 1:1 k písni, pokud to bude remix, bude to jiná píseň, takže zase bude mít svoje video a bude to opět 1:1. Ale možná to přece jen s ohledem do budoucna udělám v další, oddělené tabulce. Ono to nikoho nezabije a díky frameworku je to jen jeden řádek navíc.
24. 6. 2012 19:24:05
https://webtrh.cz/diskuse/hudebni-zebricek-jak-uchovavat-data#reply778383
Pro odpověď se přihlašte.
Přihlásit