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.



