Vytvoříme vám e-shop a přivedeme zákazníky. Vyzkoušejte si nás zdarma
Zobrazují se odpovědi 1 až 5 z 5

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

  1. Bacon Hodnocení: 1 (100%) Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru
    1
    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.

  2. Co se právě děje na Webtrhu?
  3. Kontras Hodnocení: 6 (100%) Kontras je na dobré cestě
    2
    Co takhle přidat další sloupec do dané tabulky? nebo vytvoř zprostředkovací tabulku.

  4. Bacon Hodnocení: 1 (100%) Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru
    3
    Citace Původně odeslal Kontras Zobrazit příspěvek
    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.

  5. marcus33cz Hodnocení: 14 (100%) marcus33cz je na dobré cestě
    4
    Citace Původně odeslal Bacon Zobrazit příspěvek
    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.

  6. Bacon Hodnocení: 1 (100%) Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru Bacon vyzařuje působivou auru
    5
    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.

Hostujeme u Server powered by TELE3