Avatar billede Paulsen3 Nybegynder
25. januar 2015 - 21:28 Der er 3 kommentarer

opsætning af database

Jeg vil lige starte med at sige at jeg kun har arbejdet i kort tid med databaser. Så håber på et par gode råd til mit projekt.

Jeg er ved at lave en hjemmeside med et Discography. Jeg har oprettet tabellen "item" som består af alle mine musik items.
Tabellen indeholder info som: titel, artist, format, osv.
Problemet er hvordan jeg nemmest laver en liste over de sange der er på itemet. Man skal huske at et item også kan være en speciel box med f.eks. flere cd'er, dvd'er eller andre formater.
Jeg tænker at have en anden tabel "songs" der indeholder de forskellige sange der findes.
Tabellen songs vil så bestå af: "id", "song", "artist" osv.
Fordelen er at jeg så kun skal skrive alle sang informationerne en gang. Der bliver nemlig en masse items der indeholder de samme sange.
Jeg tænker at jeg så i tabellen "item" har en kolonne "item_songs" der indeholder en liste over de sange der er på itemet.
F.eks. {1,3,4,6,7,9} hvor disse tal henviser til id i song-tabellen.
Jeg ved ikke om det er måden at gøre det på eller der er en nemmere. Jeg ved heller ikke hvordan jeg skal skrevet listen af sange ud.
Avatar billede keysersoze Guru
25. januar 2015 - 22:27 #1
Kig på normalformer - det vil give dig svaret.

ITEM
id
titel
...

SONG
id
titel

ITEMSONGS
itemid
songid
Avatar billede Paulsen3 Nybegynder
26. januar 2015 - 23:48 #2
Tak for starthjælpen.
Jeg er dog ikke helt i mål endnu.
Jeg har problemer med at få lavet tabellen der indeholder listen over hvilke sange der er på albummet (ITEM).
Lige nu har jeg følgende:
Tabellen ITEM der indeholder alle albummer og deres informationer (titel, artist, land, format).
Tabellen SONG der indeholder alle sange og deres informationer (titel, artist, version(studio/live))
Tabellen TRACKLIST der skal samle et antal sange til en liste.
Alle sange kan forkomme på flere forskelle TRACKLISTER og alle TRACKLISTER kan forekomme på flere forskellige ITEMS da det måske kun er udgivelseslandet der er forskellig fra album til album.
Tabellen TRACKLISTNAME der indeholder en liste over de forskellige tracklister.
Tabellen ITEMTRACKLIST der knytter de forskellige TRACKLISTNAME til de forskellige ITEMS

Jeg tænker følgende:
ITEM
itemID - titel        - land
111    - Reckless      - Canada
112    - Reckless      - USA
113    - Into the fire - USA
114    - Reckless      - Germany

SONG
songID - titel        - version
200    - Heaven      - studio
201    - Somebody    - studio
202    - Summer of 69 - studio
203    - Rebel        - studio

TRACKLIST
tracklistID - tracklistnameID    - tracknummer - trackID
300        - 700                - 1          - 200
301        - 700                - 2          - 201
301        - 700                - 3          - 202
302        - 701                - 1          - 200
304        - 701                - 2          - 201
305        - 701                - 3          - 202

TRACKLISTNAME
tracklistnameID - navn
700            - RecklessNormal
701            - RecklessBonus
702            - IntoTheFireNormal

ITEMTRACKLIST
itemID - tracklistnameID
111    - 700
112    - 700
113    - 702
114    - 701

Eller er jeg helt gal på den?
Avatar billede showsource Seniormester
27. januar 2015 - 19:15 #3
Uden at tænke tanken til ende, men a'la keysersoze:

En tabel med artist:
id -> artist

En tabel med albums:
id -> album_name

En tabel numre:
id -> song_name

En tabel med genre:
id -> live
id -> studio

Steve Harley lavede engang et nummer, Make me smile, (Come up and make me smile), og den lavede Miss B. Haven deres version af senere.

artist ->

1 -> Steve Harley
2 -> Miss B. HAven

albums ->

1 -> Husker det ikke
2 -> Heller ikke

numre ->

1 -> Make me smile

genre ->
1 -> studio
2 -> live

tracklist ->

artist_id, album_id, numre_id, genre_id

1 -> 1 -> 1 -> 1
og
2 -> 2 -> 1 -> 2


Og det er sikkert lavet hunredvis af gange tidligere, og siden udviklet fordi man i dag kan få mere info via cd/fil.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester