Simpel database design

Pagina: 1
Acties:

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Ik hoop dat ik mijn cursusje normaliseren een beetje heb begrepen... Wat ik wil doen: Al mijn albums die ik heb in mp3 in een database(MySQL) proppen. Ik ga dit dan met php uitspugen op een paginatje.
De relatie is dus 1 op veel, waarbij je dus geen koppeltabel hoeft te gebruiken...

mijn database design is als volgt:

code:
1
2
3
4
tabel artiest:
id
artiest_id
artiest_naam


code:
1
2
3
4
5
tabel album:
id
album_id
album_naam
artiest_id


code:
1
2
3
4
5
6
tabel info:
id
info_id
album_id
bitrate
tracks


Is dit ongeveer goed?

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 21-08 19:07

dominic

will code for food

Prima hoor jongen :)

Download my music on SoundCloud


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Hoe moeten wij dat nu weten.
Welke gegevens wil je bijhouden, wat is de relatie tot de gegevens, ...

Geef eens wat meer uitleg.

ps: wij zijn geen meesters die zeggen of iets goed is of niet hé, dat moet je zelf zien. We kunnen enkel tips geven :)

pps: ik snap wel niet direct wat het verschil is tussen bijvoorbeeld: 'id' en 'artiest_id' :?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Verwijderd

tabel info
id
info_id

Waarom twee maal id?

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Feyd-Rautha schreef op 19 June 2003 @ 20:01:
Hoe moeten wij dat nu weten.
Welke gegevens wil je bijhouden, wat is de relatie tot de gegevens, ...

Geef eens wat meer uitleg.

ps: wij zijn geen meesters die zeggen of iets goed is of niet hé, dat moet je zelf zien. We kunnen enkel tips geven :)

pps: ik snap wel niet direct wat het verschil is tussen bijvoorbeeld: 'id' en 'artiest_id' :?
id is voor iedere unieke record... artiest_id staat voor een id van een artiest, artiest X heeft bijvoorbeeld id 5

[ Voor 3% gewijzigd door Y0ur1 op 19-06-2003 20:02 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Een artiest is toch uniek?

Evenals dat een album uniek is.. Je hoeft imho dus niet EN een uniek ID te genereren en er zelf eentje toe te wijzen...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Maar zo'n simpele database hoef je hier toch niet te laten keuren?

Verwijderd

gorgi_19 schreef op 19 juni 2003 @ 20:03:
Een artiest is toch uniek?

Evenals dat een album uniek is.. Je hoeft imho dus niet EN een uniek ID te genereren en er zelf eentje toe te wijzen...
inderdaad, gorgi_19 heeft gelijk. nu doe je het dubbel

Verwijderd

Verwijderd schreef op 19 June 2003 @ 20:02:
tabel info
id
info_id

Waarom twee maal id?
Inderdaad, waarom in iedere tabel 2 id's?

/Edit: een beetje laat.....

[ Voor 10% gewijzigd door Verwijderd op 19-06-2003 20:05 ]


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
ja maar wil je die tabellen ook nog gekoppeld hebben. Ik neem aan dat je ID gebruikt als primary key, en in

artiest: Id met artiest_id.
album: id met album_id
info: id met info_id

en dan nog een extra tabel met de primary key ID en de keys uit de ander tabellen. om ze te koppelen

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 19 June 2003 @ 20:03:
Een artiest is toch uniek?

Evenals dat een album uniek is.. Je hoeft imho dus niet EN een uniek ID te genereren en er zelf eentje toe te wijzen...
ah das natuurlijk waar ja, 2 dezelfde artiesten zijn er niet en albums ook niet.

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
voodoo202 schreef op 19 June 2003 @ 20:04:
ja maar wil je die tabellen ook nog gekoppeld hebben. Ik neem aan dat je ID gebruikt als primary key, en in

artiest: Id met artiest_id.
album: id met album_id
info: id met info_id

en dan nog een extra tabel met de primary key ID en de keys uit de ander tabellen. om ze te koppelen
Ik haal toch al in mijn tabel 'album' artiest_id, dan is hij toch gekoppeld

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ik weet niet of je normaliseren van een database ooit hebt gehad op school. Maar je schrijft eerst alle velden op, die zet je in de nulde normaal vorm, dan in de 1e dan 2e 3e en evt 4e.

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
voodoo202 schreef op 19 juni 2003 @ 20:07:
Ik weet niet of je normaliseren van een database ooit hebt gehad op school. Maar je schrijft eerst alle velden op, die zet je in de nulde normaal vorm, dan in de 1e dan 2e 3e en evt 4e.
nu snap ik er nog minder van 8)7

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Ik mis trouwens ook de tabel tracks.. :P
Ik ga er tenminste niet van uit dat je tracks als csv-lijst gaat opslaan? :P
YT-Croc schreef op 19 juni 2003 @ 20:06:
[...]


Ik haal toch al in mijn tabel 'album' artiest_id, dan is hij toch gekoppeld
1 album heeft 1 of meer artiesten (denk aan verzamelalbums.. :P)
voodoo202 schreef op 19 juni 2003 @ 20:07:
Ik weet niet of je normaliseren van een database ooit hebt gehad op school. Maar je schrijft eerst alle velden op, die zet je in de nulde normaal vorm, dan in de 1e dan 2e 3e en evt 4e.
4e normaalvorm wordt nauwelijks gebruikt. Maar normaliseren is alleen een hulpmiddel om tot een goed databasemodel te komen. Je kan imho ook stappen overslaan, als je de exercitie vaak genoeg hebt gedaan...

[ Voor 41% gewijzigd door gorgi_19 op 19-06-2003 20:11 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 19 juni 2003 @ 20:09:
Ik mis trouwens ook de tabel tracks.. :P
Ik ga er tenminste niet van uit dat je tracks als csv-lijst gaat opslaan? :P


[...]

1 album heeft 1 of meer artiesten (denk aan verzamelalbums.. :P)
daar ga ik niet van uit, ik heb sowieso geen verzamelalbums.

  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Waarom zouden er niet twee dezelfde artiesten kunnen zijn? Er zijn toch ook meerdere Jan Jansens? Datzelfde geld voor een album.

Daarnaast kunnen er op een album nummers van meerdere artiesten staan (verzamelcd's) en kan een artiest meerdere albums hebben uitgebracht. Dit lijkt me eerdere een n-n dan een 1-n oplossing.

Beschouw je dit meer als een oefening dan zou ik je aanraden om lekker door te gaan, wil je echt iets moois dan zou ik naar een kant-en-klare database hiervoor gaan zoeken.

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tabel artiest:
id
artiest_naam

tabel artiest_album
artiest_id
album_id

tabel album:
id
album_naam

tabel info:
id
album_id
bitrate
tracks


Nu kan je meerdere artiesten aan 1 album koppelen dmv een koppel tabel.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Arnaud schreef op 19 June 2003 @ 20:12:
Waarom zouden er niet twee dezelfde artiesten kunnen zijn? Er zijn toch ook meerdere Jan Jansens? Datzelfde geld voor een album.
Die hebben allebei een uniek ID
Beschouw je dit meer als een oefening dan zou ik je aanraden om lekker door te gaan, wil je echt iets moois dan zou ik naar een kant-en-klare database hiervoor gaan zoeken.
Zo iets maken iets niet zo heel moeilijk.. ;)

----
Is trouwens de kolom info_id niet volstrekt nutteloos, aangezien er een 1:1 relatie bestaat tussen album en info?

[ Voor 11% gewijzigd door gorgi_19 op 19-06-2003 20:14 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
ok nieuw design


code:
1
2
3
tabel artiest:
artiest_id (Prim. key) (uniek artiest id)
artiest_naam (naam v/d artiest)


code:
1
2
3
4
5
tabel album:
album_id (Prim. key) (uniek album id)
album_naam (naam v/h album)
artiest_id (het id van de artiest van het album uit tabel 'artiest')
info_id (uit tabel 'info')


code:
1
2
3
4
5
tabel info:
info_id (Prim. key) (uniek id voor info)
album_id (id van het album uit tabel 'album')
bitrate (bitrate v/h de cd)
tracks (hoeveel tracks er op de cd staan)


code:
1
2
3
4
tabel tracks:
tracks_id (Prim key)
tracks (namen v/d tracks)
album_id (uit tabel 'album')

[ Voor 19% gewijzigd door Y0ur1 op 19-06-2003 20:49 ]


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Arnaud schreef op 19 June 2003 @ 20:12:
Waarom zouden er niet twee dezelfde artiesten kunnen zijn? Er zijn toch ook meerdere Jan Jansens? Datzelfde geld voor een album.

Daarnaast kunnen er op een album nummers van meerdere artiesten staan (verzamelcd's) en kan een artiest meerdere albums hebben uitgebracht. Dit lijkt me eerdere een n-n dan een 1-n oplossing.

Beschouw je dit meer als een oefening dan zou ik je aanraden om lekker door te gaan, wil je echt iets moois dan zou ik naar een kant-en-klare database hiervoor gaan zoeken.
Ik ga het mooi zelf maken, het is ook meer om te oefenen en om er wat beter in te worden. Heeft iemand een idee hoe ik het veld 'tracks' kan gaan vullen in de tabel 'tracks'?
Watn dat moet iets worden als:
1. track 1
2. track 2
3. track 2

etc....

[ Voor 15% gewijzigd door Y0ur1 op 19-06-2003 20:21 ]


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
--------------------------------------------------------------------------------
Arnaud schreef op 19 June 2003 @ 20:12:
Waarom zouden er niet twee dezelfde artiesten kunnen zijn? Er zijn toch ook meerdere Jan Jansens? Datzelfde geld voor een album.


--------------------------------------------------------------------------------

Die hebben allebei een uniek ID
Maar aangezien je alleen je post welke kolommen in welke tabellen staan, maar niets zegt over de relaties daartussen weet niemand hoe je data koppelt. Bovendien betekent dit dat je nu van album "hoempahoempa" moet gaan opgeven dat het van artiest "17412" is in plaats van "slimme jantje".

Een echt goed database-ontwerp maken voor zoiets "simpels" als dit lijkt makkelijker dan het is. Als jij er al vanuit gaat dat er geen verzamelcd's komen loop je snel genoeg tegen de fouten in je database-ontwerp aan.

Om aan te geven waarom dit moeilijker is dan je denkt: Stel dat een artiest zijn plaat uitbrengt op CD en op DVD. De DVD bevat 1 extra track. Hoe los je dit dan op in je database-ontwerp?

Mijn tip is om een database-ontwerp perfect op te zetten volgens alle ideëen die er al zijn bij het eerste ontwerp. Dingen die je vermoed dat er later bij "zouden kunnen komen (maar waarschijnlijk niet)" moet je ook direct meenemen in je database-ontwerp. Je zult zien dat er in de loop van de tijd vanzelf situaties onstaan waar je nooit aan had gedacht en die je alleen via een omweg in je database-ontwerp kunt krijgen. Begin dus perfect, anders wordt het later zo'n grote puinzooi dat je opnieuw wilt gaan beginnen!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Arnaud schreef op 19 June 2003 @ 20:31:
[...]

Maar aangezien je alleen je post welke kolommen in welke tabellen staan, maar niets zegt over de relaties daartussen weet niemand hoe je data koppelt. Bovendien betekent dit dat je nu van album "hoempahoempa" moet gaan opgeven dat het van artiest "17412" is in plaats van "slimme jantje".

Een echt goed database-ontwerp maken voor zoiets "simpels" als dit lijkt makkelijker dan het is. Als jij er al vanuit gaat dat er geen verzamelcd's komen loop je snel genoeg tegen de fouten in je database-ontwerp aan.

Om aan te geven waarom dit moeilijker is dan je denkt: Stel dat een artiest zijn plaat uitbrengt op CD en op DVD. De DVD bevat 1 extra track. Hoe los je dit dan op in je database-ontwerp?

Mijn tip is om een database-ontwerp perfect op te zetten volgens alle ideëen die er al zijn bij het eerste ontwerp. Dingen die je vermoed dat er later bij "zouden kunnen komen (maar waarschijnlijk niet)" moet je ook direct meenemen in je database-ontwerp. Je zult zien dat er in de loop van de tijd vanzelf situaties onstaan waar je nooit aan had gedacht en die je alleen via een omweg in je database-ontwerp kunt krijgen. Begin dus perfect, anders wordt het later zo'n grote puinzooi dat je opnieuw wilt gaan beginnen!
Yep ik snap helemaal wat je bedoel hoor, maar ik heb toch echt geen verzamelalbums :+

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Arnaud schreef op 19 June 2003 @ 20:31:
Maar aangezien je alleen je post welke kolommen in welke tabellen staan, maar niets zegt over de relaties daartussen weet niemand hoe je data koppelt. Bovendien betekent dit dat je nu van album "hoempahoempa" moet gaan opgeven dat het van artiest "17412" is in plaats van "slimme jantje".
Die relaties zijn in dit geval wel te bedenken, gezien de duidelijke kolomnamen.. Of hij moet erg slecht gaan goochelen.
Om aan te geven waarom dit moeilijker is dan je denkt: Stel dat een artiest zijn plaat uitbrengt op CD en op DVD. De DVD bevat 1 extra track. Hoe los je dit dan op in je database-ontwerp?
2 aparte albums :? Een heeft de naam: "Melp cd" en de ander "Melp DVD". Allebei hebben ze een eigen record. Evt. kan je nog een kolom media toevoegen aan je kolom albums, en een aparte tabel media.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 19 juni 2003 @ 20:35:
[...]

Die relaties zijn in dit geval wel te bedenken, gezien de duidelijke kolomnamen.. Of hij moet erg slecht gaan goochelen.


[...]

2 aparte albums :? Een heeft de naam: "Melp cd" en de ander "Melp DVD". Allebei hebben ze een eigen record. Evt. kan je nog een kolom media toevoegen aan je kolom albums, en een aparte tabel media.
Ik heb alleen maar cd's hoor :) Arnaud probeert me meteen de kneepjes van het vak te leren, maar ik ben er net mee begonnen en ben voorlopig alleen maar ff aan eht klooien met dit databaseje

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

YT-Croc schreef op 19 June 2003 @ 20:39:
Ik heb alleen maar cd's hoor :) Arnaud probeert me meteen de kneepjes van het vak te leren, maar ik ben er net mee begonnen en ben voorlopig alleen maar ff aan eht klooien met dit databaseje
* gorgi_19 is het alleen niet eens met alles wat hij zegt, vandaar dat ik er graag tegenin ga... ;)

Alleen blijft de vraag voor jou staan: waarom een kolom info_id?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 19 June 2003 @ 20:41:
[...]

* gorgi_19 is het alleen niet eens met alles wat hij zegt, vandaar dat ik er graag tegenin ga... ;)

Alleen blijft de vraag voor jou staan: waarom een kolom info_id?
die moet nog tabel 'album' in, was ik vergeten :P

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Weet iemand een programma waarmee ik dit wat meer kan visualiseren? (dus de relatie's leggen tussen tabellen met lijntjes enz) Kan dat met microsoft visio??

[ Voor 27% gewijzigd door Y0ur1 op 19-06-2003 20:54 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

YT-Croc schreef op 19 June 2003 @ 20:51:
Weet iemand een programma waarmee ik dit wat meer kan visualiseren? (dus de relatie's leggen tussen tabellen met lijntjes enz) Kan dat met microsoft visio??
MS Access kan dat ook.. Visio ook.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 19 June 2003 @ 20:55:
[...]

MS Access kan dat ook.. Visio ook.
access :X
Heb ik ook een keer een database in mogen maken, wat een verschrikking zeg.

  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 21-08 17:53

spaceboy

Op grote hoogte

YT-Croc schreef op 19 June 2003 @ 20:51:
Weet iemand een programma waarmee ik dit wat meer kan visualiseren? (dus de relatie's leggen tussen tabellen met lijntjes enz) Kan dat met microsoft visio??
Gewoon MS Access pakken. Kind kan de was doen.

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

YT-Croc schreef op 19 June 2003 @ 20:56:
[...]


access :X
Heb ik ook een keer een database in mogen maken, wat een verschrikking zeg.
Erhm.. Want? Wat is er mis mee? Tuurlijk moet je er geen miljoen records in stoppen...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 21-08 17:53

spaceboy

Op grote hoogte

gorgi_19 schreef op 19 June 2003 @ 21:01:
[...]

Erhm.. Want? Wat is er mis mee? Tuurlijk moet je er geen miljoen records in stoppen...
Dan is er een betere uitdaging. Zorg dat je ergens een IMS-database in elkaar kan maken. Heerlijk, een hierarchische database-structuur opzetten. Lekkere front-end erbij proggen in Cobol of PL1 and you're all set.

Echt, voor een beginner (want dan ben je) :) is Access meer dan prima.

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
spaceboy schreef op 19 June 2003 @ 22:10:
[...]

Dan is er een betere uitdaging. Zorg dat je ergens een IMS-database in elkaar kan maken. Heerlijk, een hierarchische database-structuur opzetten. Lekkere front-end erbij proggen in Cobol of PL1 and you're all set.
Ja, leuk hierarchische databases. Echter, dat zijn dino's die in het museum thuishoren.
Ik vraag me af waar ze dat momenteel nog gebruiken, hierarchische databases.

https://fgheysels.github.io/


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 21-08 19:07

dominic

will code for food

spaceboy schreef op 19 juni 2003 @ 20:58:
[...]

Gewoon MS Access pakken. Kind kan de was doen.
Idd, of SQL, iedere stukkie dbase software heeft volgens mij wel ondersteuning voor diagrams..

Even terug op een eerdere opmerking van 'dubbele id's', ik hou er zelf ook altijd van IEDER record in welke tabel dan ook van een primary key en een identity te voorzien.. zo kun je de records in welke situatie dan ook benaderen.

Download my music on SoundCloud


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
dominic schreef op 19 June 2003 @ 22:18:
[...]


Idd, of SQL, iedere stukkie dbase software heeft volgens mij wel ondersteuning voor diagrams..
Je bedoelt waarschijnlijk SQL Server? SQL is namelijk een taal, en geen DBMS. ;)
Even terug op een eerdere opmerking van 'dubbele id's', ik hou er zelf ook altijd van IEDER record in welke tabel dan ook van een primary key en een identity te voorzien.. zo kun je de records in welke situatie dan ook benaderen.
Bedoel je dan dat je 2 id's hebt per record?
Waarom niet 1 id die een primary key is en ook identity column is? Een primary key moet zowiezo altijd uniek zijn.

https://fgheysels.github.io/


  • DaRoot
  • Registratie: Maart 2001
  • Laatst online: 21-08 08:57

DaRoot

Some say...

Heb dit ff beetje gevolgd, ik ben zelf ook een behoorlijke leek op databeest gebied. Maar misschien kun je de topicstarter helpen met een site over basic database design en normaliseren? Daar ben ik eigenlijk ook benieuwd naar.

Insured by MAFIA - You hit me, we hit you!!!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

DaRoot schreef op 19 juni 2003 @ 22:20:
Heb dit ff beetje gevolgd, ik ben zelf ook een behoorlijke leek op databeest gebied. Maar misschien kun je de topicstarter helpen met een site over basic database design en normaliseren? Daar ben ik eigenlijk ook benieuwd naar.
http://home.student.utwen...aper_DB_normalisation.pdf

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
DaRoot schreef op 19 June 2003 @ 22:20:
Heb dit ff beetje gevolgd, ik ben zelf ook een behoorlijke leek op databeest gebied. Maar misschien kun je de topicstarter helpen met een site over basic database design en normaliseren? Daar ben ik eigenlijk ook benieuwd naar.
Kijk eens in de P&W FAQ.
Klik op inhoudelijke FAQ en dan op het item SQL ofzo. Je vind daar ook wel iets over normalisatie enzo.

https://fgheysels.github.io/


  • DaRoot
  • Registratie: Maart 2001
  • Laatst online: 21-08 08:57

DaRoot

Some say...

Kijk eens aan, mij wordt ineens ook weer wat meer duidelijk! Is een duidelijke beschrijving denk ik zo. Many thanks.
whoami schreef op 19 juni 2003 @ 22:22:
[...]


Kijk eens in de P&W FAQ.
Klik op inhoudelijke FAQ en dan op het item SQL ofzo. Je vind daar ook wel iets over normalisatie enzo.
Stom stom stom, had ik zelf ook kunnen kijken inderdaad. Ik kom eigenlijk nooit in dit subforum, vandaar.

[ Voor 37% gewijzigd door DaRoot op 19-06-2003 22:32 ]

Insured by MAFIA - You hit me, we hit you!!!


  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Om aan te geven waarom dit moeilijker is dan je denkt: Stel dat een artiest zijn plaat uitbrengt op CD en op DVD. De DVD bevat 1 extra track. Hoe los je dit dan op in je database-ontwerp?


--------------------------------------------------------------------------------

2 aparte albums Een heeft de naam: "Melp cd" en de ander "Melp DVD". Allebei hebben ze een eigen record. Evt. kan je nog een kolom media toevoegen aan je kolom albums, en een aparte tabel media.
--------------------------------------------------------------------------------

Uiteraard 2 aparte albums, want ook dingen als releasedatum, uitgever, etc kunnen verschillend zijn. Het probleem dat ik probeer aan te geven is dat je in eerste instantie denkt dat er een 1-n relatie is tussen track en album, terwijl dit later een n-n relatie blijkt te zijn. Als je dit goed wilt normaliseren moet je dus een koppeltabel maken.

"Melp CD" en "Melp DVD" is verboden als je gaat normaliseren omdat je dan een samengestelde key krijgt. Hierdoor kun je later niet meer zoeken op alle CD's en ook de kans op foutieve invoer (zoals "Melp C.D.") is veel te groot waardoor vervuiling ontstaat in je database. Je zult dus inderdaad een extra kolom "Media-type" moeten opnemen die een 1-n relatie heeft met een "opzoek-tabel". Het nadeel is nu dat als een CD en DVD 100% overeenkomen qua tracks (wat vrijwel altijd zo zal zijn), je nu veel meer invoerwerk hebt door al dat genormaliseer.

De moraal van dit verhaal: Normaliseer in eerste instantie perfect, maar later kom je erachter dat het nog altijd niet goed genoeg is!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Arnaud schreef op 19 June 2003 @ 23:06:
"Melp CD" en "Melp DVD" is verboden als je gaat normaliseren omdat je dan een samengestelde key krijgt. Hierdoor kun je later niet meer zoeken op alle CD's en ook de kans op foutieve invoer (zoals "Melp C.D.") is veel te groot waardoor vervuiling ontstaat in je database. Je zult dus inderdaad een extra kolom "Media-type" moeten opnemen die een 1-n relatie heeft met een "opzoek-tabel". Het nadeel is nu dat als een CD en DVD 100% overeenkomen qua tracks (wat vrijwel altijd zo zal zijn), je nu veel meer invoerwerk hebt door al dat genormaliseer.
't is maar hoe je het beschouwd.. Als je een album beschouwd als muziekdrager, irrelevant als mediatype, dan kan je het wel toevoegen.. Maar ik geloof dat ik hierover al iets eerder wat had gezegd...
gorgi_19 schreef op 19 juni 2003 @ 20:35:
2 aparte albums :? Een heeft de naam: "Melp cd" en de ander "Melp DVD". Allebei hebben ze een eigen record. Evt. kan je nog een kolom media toevoegen aan je kolom albums, en een aparte tabel media.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
ok bedankt voor de reactie's, ben weer wat wijzer :)

[ Voor 9% gewijzigd door Y0ur1 op 20-06-2003 01:43 ]


  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 21-08 17:53

spaceboy

Op grote hoogte

whoami schreef op 19 June 2003 @ 22:12:
[...]


Ja, leuk hierarchische databases. Echter, dat zijn dino's die in het museum thuishoren.
Ik vraag me af waar ze dat momenteel nog gebruiken, hierarchische databases.
Ga maar 's bij de Amev werken... Reken maar dat er een paar miljoen verzekerden in Nederland rondlopen die vrolijk met hun gegevens in een hierarchische database staan. ;)

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.


  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 21-08 08:11
Ik heb dit documentje ook even gelezen, maar ik snap niet echt het nut van de laatste stap die ze maken: het verschuiven van postcode en woonplaats naar een aparte tabel.

- In welke gevallen levert dit een "anomalie" op?

- Kan iemand me een concreet voorbeeld geven wanneer dit nut heeft?

Als ik een DB maak met persoonsgegevens en er zit postcode/woonplaats bij, dan zet ik dit gewoon in de persoon tabel en ga geen extra tabel aanmaken.

[ Voor 4% gewijzigd door trekker22 op 20-06-2003 11:04 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
trekker22 schreef op 20 juni 2003 @ 11:04:
[...]

Als ik een DB maak met persoonsgegevens en er zit postcode/woonplaats bij, dan zet ik dit gewoon in de persoon tabel en ga geen extra tabel aanmaken.
Dan ga jij tientallen keren dezelfde informatie opslaan?
Als er dan in je tabel Persoon, 2 of meerdere personen zijn die in dezelfde gemeente wonen, dan ga jij iedere keer diezelfde gegevens gaan opslaan?
Stel dat de gemeente dan van naam veranderd, of de postcode veranderd, hoeveel keer ga jij dan die aanpassing moeten doen?

https://fgheysels.github.io/


  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 21-08 22:37

heuveltje

KoelkastFilosoof

trekker22 schreef op 20 June 2003 @ 11:04:
[...]


Ik heb dit documentje ook even gelezen, maar ik snap niet echt het nut van de laatste stap die ze maken: het verschuiven van postcode en woonplaats naar een aparte tabel.

- In welke gevallen levert dit een "anomalie" op?

- Kan iemand me een concreet voorbeeld geven wanneer dit nut heeft?

Als ik een DB maak met persoonsgegevens en er zit postcode/woonplaats bij, dan zet ik dit gewoon in de persoon tabel en ga geen extra tabel aanmaken.
1 postcode hoort bij 1 plek.
nu zou er dit in een tabel kunnen staan
5616jw veldhoven
5616jw veldhoven
5616jw amsterdam.

das dus niet goed.
als je het in 1 tabel zet kun je eenvoudig postcode als unique id aanhouden

en je zou nu gewoon van de ptt een db kunnen jatten waar alle postcodes in staan, probleem meteen opgelost :)

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


  • trekker22
  • Registratie: Maart 2003
  • Laatst online: 21-08 08:11
jullie hebben helemaal gelijk... nooit bij stil gestaan

Bedankt voor de info!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
nou die lijntjes met visio gaan nog niet helemaal lekker, maar dit is zon beetje de bedoeling:
Afbeeldingslocatie: http://youalin.tweakdsl.nl/data.JPG

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Ik vind de naamgeving van je tabellen wat onduidelijk.

En ook die tabel album en info snap ik niet echt goed.
Wat is het veld 'tracks' trouwens in de info tabel?

https://fgheysels.github.io/


  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
whoami schreef op 20 juni 2003 @ 12:26:
Ik vind de naamgeving van je tabellen wat onduidelijk.

En ook die tabel album en info snap ik niet echt goed.
Wat is het veld 'tracks' trouwens in de info tabel?
het veld tracks in de info tabel is alleen hoeveel tracks er op het album staan. In de tabel info staat informatie over het albums, en in de tabel album komen de namen van de albums te staan + artiest_id

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En dan de volgende vraag.. Waarom zijn album en info 2 aparte tabellen?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
YT-Croc schreef op 20 June 2003 @ 12:31:
[...]


het veld tracks in de info tabel is alleen hoeveel tracks er op het album staan.
Ik dacht het al. Dat is dus een calculated field, en is dus totaal niet nodig.
Als je die links over normaliseren nog eens bekijkt, zal je zien dat in de 1ste of 2de Normaalvorm alle calculated fields eruit gaan.
Je kan namelijk dmv een query makkelijk het aantal tracks van een album te weten komen. Dat is de beste en flexibilste manier.
Stel dat je een track toevoegt bij een album of verwijderd van een album, dan moet je iedere keer dat veld gaan updaten.
In de tabel info staan informatie over het albums, en in de tabel album komen de namen van de albums te staan + artiest_id
Waarom kan die informatie niet in de album tabel opgenomen worden?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 20 June 2003 @ 12:33:
[...]


Ik dacht het al. Dat is dus een calculated field, en is dus totaal niet nodig.
Dat is het niet.. ;)
Er is namelijk geen tabel tracks. :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
gorgi_19 schreef op 20 juni 2003 @ 12:37:
[...]

Dat is het niet.. ;)
Er is namelijk geen tabel tracks. :P
Kijk nog eens goed naar het plaatje jij.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 20 June 2003 @ 12:39:
[...]


Kijk nog eens goed naar het plaatje jij.
Da's gemeen... Hij heeft het plaatje veranderd ten opzichte van het originele ontwerp... ;)

[ Voor 12% gewijzigd door gorgi_19 op 20-06-2003 12:42 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 21-08 22:37

heuveltje

KoelkastFilosoof

ehm ik hem eerlijk gezegd nogal vreemd ..........

je houd per album een bitrate bij. lijkt me dat dat per song moet
je houd een track id bij. maar waarom ? lijkt me dat je wat nuttige info mist in die tabel (songname enzo :X)
je houd 1 zanger bij per album. solo nummers van bandleden, extra zangers die meedoen en weet ik wat kun je dus niet bijhouden

als je naar info_id verwijst vanuit een album id
waarom hou je in info tabel dan weer een album id bij ?

waarom zijn info en album uberhaupt gescheiden ?

[ Voor 22% gewijzigd door heuveltje op 20-06-2003 12:49 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 21-08 22:37

heuveltje

KoelkastFilosoof

persoonlijk zou ik er zoiets van gebakken hebben.

(bovenste hokje is tabelnaam)
Afbeeldingslocatie: http://www.theforumisdown.com/uploadfiles/0103/DB.gif

[ Voor 13% gewijzigd door heuveltje op 20-06-2003 13:05 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d

Pagina: 1