muziek database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Brian ten Pas

Brian ten Pas

27/05/2014 16:03:54
Quote Anchor link
Ik ben bezig met het ontwerpen van een muziekdatabase. Er zijn alleen een aantal dingen die ik nog niet geheel begrijp.

Een muzikant kan in meerdere bands spelen en meerdere instrumenten bespelen. Net als dat er meerdere labels gekoppeld kunnen worden aan een album, alleen hoe moet je dit realiseren?

Dit is wat ik tot nu toe heb:

• Band
o Bandnaam Primary Key
o Land
o Staat
o Plaats
o Website
• Album
o Titel Primary Key
o BandNaam Foreign Key
o Soort
o Platenmaatschappij Foreign Key
o Genre Foreign Key
o JaartalPublicatie
o Lengte
• Nummer
o Tracktitel Primary Key
o AlbumTitel Foreign Key
o Tracknummer
o trackLengte
• Muzikant
o Muzikantid Primary Key
o Voornaam
o Achternaam
o Geboortejaar
o Bandnaam foreign key
o Instrument Foreign Key
• Genre
o Genre Primary Key
• platenmaatschappij
o platenmaatschappij Primary Key
• Instrument
o Instrument
Gewijzigd op 27/05/2014 16:05:01 door Brian ten Pas
 
PHP hulp

PHP hulp

19/04/2024 00:39:39
 
Stijn Quux

Stijn Quux

27/05/2014 17:47:23
Quote Anchor link
Waarom zoveel verschillende tables? dit kan je realiseren met maar 2 tabels...
Werk met id's en je komt er wel!
 
Brian ten Pas

Brian ten Pas

27/05/2014 19:40:29
Quote Anchor link
Dat snap ik niet helemaal, want ik wil echt informatie in de database zetten over de bands en over de albums en dat lijkt me moeilijk te realiseren in twee tabellen.
 
Ivo P

Ivo P

27/05/2014 19:54:42
Quote Anchor link
ik zou in elk geval gaan voor numerieke primary keys

dat maakt dat je in een later stadium de naam van een band zou kunnen aanpassen (dat gebeurt)
en werkt een stuk eenduidiger dan bijvoorbeeld
"Het goede doel", "Het goede Doel", etc
 
Erwin H

Erwin H

27/05/2014 21:24:41
Quote Anchor link
Stijn Quux op 27/05/2014 17:47:23:
Waarom zoveel verschillende tables? dit kan je realiseren met maar 2 tabels...
Werk met id's en je komt er wel!

Met twee tabellen? Geintje zeker?

Je hebt voor elke entiteit een tabel nodig:
- muzikant
- band
- album
- nummer

Eventueel nog instrument en genre (niet noodzakelijk, kan wel).

Vervolgens heb je voor een aantal links tussen de entiteiten een koppeltabel nodig, omdat dat many-to-many relaties zijn. Zoals je zelf al stelt kan een muzikant in meerdere bands spelen. Maar een album is normaal maar van 1 band. Een nummer daarintegen, kan weer op meerdere albums staan.

Koppeltabellen die je dus in elk geval nodig hebt:
- band - muzikant
- album - nummer
Gewijzigd op 27/05/2014 21:25:34 door Erwin H
 
Brian ten Pas

Brian ten Pas

27/05/2014 23:34:45
Quote Anchor link
Ivo P op 27/05/2014 19:54:42:
ik zou in elk geval gaan voor numerieke primary keys

dat maakt dat je in een later stadium de naam van een band zou kunnen aanpassen (dat gebeurt)
en werkt een stuk eenduidiger dan bijvoorbeeld
"Het goede doel", "Het goede Doel", etc



Dankje Ivo, dat zal ik zekers meenemen.

Erwin H op 27/05/2014 21:24:41:
Stijn Quux op 27/05/2014 17:47:23:
Waarom zoveel verschillende tables? dit kan je realiseren met maar 2 tabels...
Werk met id's en je komt er wel!

Met twee tabellen? Geintje zeker?

Je hebt voor elke entiteit een tabel nodig:
- muzikant
- band
- album
- nummer

Eventueel nog instrument en genre (niet noodzakelijk, kan wel).

Vervolgens heb je voor een aantal links tussen de entiteiten een koppeltabel nodig, omdat dat many-to-many relaties zijn. Zoals je zelf al stelt kan een muzikant in meerdere bands spelen. Maar een album is normaal maar van 1 band. Een nummer daarintegen, kan weer op meerdere albums staan.

Koppeltabellen die je dus in elk geval nodig hebt:
- band - muzikant
- album - nummer


Dankje Erwin. Ik heb les gehad over normaliseren en hoe ik met een database moet werken, maar niets over koppeltabellen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.