Rád bych se ještě vrátil k tomuto tématu a požádal o pár rad.
Něco jsem dal dohromady, ale nejsem s tím spokojený. Respektive jsem to celý zprasil, protože mi některý věci nedošly.
Zásadní problém je v tom, že tak jak jsem tabulky poskládal, tak by ke každému umělci musel příslušet jeden žánr, ke každému albu jeden umělec atd. Předpokládám, že jediný rozumný způsob, jak tohle vyřešit, je vytvoření porovnávací tabulky mezi všema tabulkama. To už jich ale bude šílená spousta, nebude to nakonec kontraproduktivní?
Vypadalo by to asi takhle:
Žánr | Žánr_id |
Folk-rock | 1 |
Country | 2 |
Rock & Roll | 3 |
Interpret | Interpret_id |
Elvis Presley | 1 |
Pavel Bobek | 2 |
Žánr_id | Interpret_id |
1 | 2 |
2 | 1 |
2 | 2 |
3 | 1 |
3 | 2 |
Podobné porovnávací tabulky by potom byly mezi všema třídícíma tabulkama. Dává to smysl? Je to takhle správně?
A jak se potom udělá JOIN takových tabulek?
Taky mě trápí, jak implementovat autora alba. Chtěl bych, aby v UI v seznamu "Interpret" bylo obojí. To znamená, že tam bude jak Country Beat Jiřího Brabce, jakožto autor alba, tak i Nadě Urbánková, Jiří Grossman nebo Ladislav Vodička, jakožto interperti jednotlivých písniček.
Jediná rozumná věc, která mě napadla, je přidat autora alba do tabulky alb, protože každé album má logicky pouze jednoho autora. Pokud vytvářím seznam interpretů/autorů, vyjedu si s "DISTINCT" autory alb a celou tabulku "Interpret". Potom oba seznamy spojím a vymažu duplicity. Zdá se mi to ale dost krkolomné. Bohužel jsem na nic lepšího nepřišel. Položka "Autor alba" do toho vnáší spoustu různých nesystematičností a výjimek, kterým bych se rád vyhnul, ale nevím jak. Každopádně tohle je spíš podružný problém, protože to funguje, jenom se mi to nelíbí. Důležité pro mě je, jak udělat ty tabulky.
Díky všem za rady.