/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Opbygning af database
Fra : Troels


Dato : 06-02-03 13:51

Hej
Jeg er ved at lave en hjemmeside med infomationer om danske bands. Siden
skal bestå af 3 dele. En med info om bands, en med info om medlemmerne af
disse bands og en med diskografi. Problemet er databasen der indeholder
diskografierne. Jeg vil gerne have at der står hvilke numre der er på de
enkelte plader, men man kan jo ikke gå udfra at der er lige mange numre på
pladerne så man kan derfor ikke bare lave felter der hedder nr_1, nr_2 osv.
Omvendt vil jeg også gerne undgå at skulle lave tables til hver enkelt
album. NOgen der har gode forslag til hvordan det kan gøres?

/Troels



 
 
Jens Gyldenkærne Cla~ (06-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-02-03 14:17

Troels skrev:

> Problemet er databasen der indeholder diskografierne. Jeg vil
> gerne have at der står hvilke numre der er på de enkelte
> plader, men man kan jo ikke gå udfra at der er lige mange
> numre på pladerne så man kan derfor ikke bare lave felter der
> hedder nr_1, nr_2 osv. Omvendt vil jeg også gerne undgå at
> skulle lave tables til hver enkelt album.

Du har tænkt ganske fornuftigt. Et nummer på en plade udgør det man
i databaseterminologi kalder en entitet - det vil sige en
selvstændig enhed. Entiteter skal have deres egne tabeller - det
vil i dette tilfælde sige en tabel til alle enkeltnumrene. En anden
entitet er en plade og en tredje er et band.

Det du har brug for er en normaliseret databasestruktur - dvs. en
struktur hvor hver enkelt oplysning kun gemmes ét sted, og hvor
oplysninger af samme slags ligger i samme felt. Hvis man for at få
plads til nogle oplysninger laver felter som xx1, xx2, xx3, xx4 er
der ofte noget galt.

I dit tilfælde ville jeg lave følgende tabeller:

tbl_numre
   nummerID,
   pladeID,
   placering,
   Titel,
   varighed

tbl_plader
   pladeID,
   bandID,
   Titel,
   pladeselskab,
   antalcder

tbl_band
   bandID,
   bandNavn,
   bandstart,
   bandslut,
   beskrivelse

tbl_medlemmer
   personID
   fornavn
   efternavn
   instrument
   beskrivelse

tbl_spiller_i
   personID
   bandID
   startaar
   slutaar

På denne måde kan en person spille i flere bands, ligesom et band
kan have flere medlemmer. Hvert band kan udgive et antal plader og
hver plade kan indeholde et antal numre. Tabellerne kædes sammen
med referentiel integritet - hvis du ikke lige ved hvordan det
foregår vil jeg foreslå dig at købe en bog om databaser inden du
går i gang.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Troels (06-02-2003)
Kommentar
Fra : Troels


Dato : 06-02-03 15:12

Først og fremmest mange tak for et meget konstuktivt svar.

> Tabellerne kædes sammen
> med referentiel integritet - hvis du ikke lige ved hvordan det
> foregår vil jeg foreslå dig at købe en bog om databaser inden du
> går i gang.

Det må jeg nok tilstå at jeg ikke rigtigt gør. Jeg har kigget lidt på nogle
bøger omkring MySQL på biblioteket, men det er jo noget af en mundfuld at
komme igennem dem alle sammen. Så kan du anbefale nogle der er gode at
starte med. Helst på dansk naturligvis, selvom jeg godt ved at største delen
af den slags bøger kun udkommer på engelsk.

/Troels



Jens Gyldenkærne Cla~ (06-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-02-03 15:36

Troels skrev:

> Det må jeg nok tilstå at jeg ikke rigtigt gør. Jeg har kigget
> lidt på nogle bøger omkring MySQL på biblioteket, men det er
> jo noget af en mundfuld at komme igennem dem alle sammen. Så
> kan du anbefale nogle der er gode at starte med.

Database-håndbogen af Joakim Dalby er en udmærket introduktion til
relationelle databaser. Den tager ikke udgangspunkt i nogen
specifik database, men er grundig i beskrivelsen af hvordan man
opbygger en database med flere relaterede tabeller.

I mindre målestok er der sikkert også hæfter fra IDG - men jeg vil
anbefale en bog. Du behøver ikke tygge hele bogen igennem, tag evt.
blot afsnittene om normalisering på 1., 2. og 3. normalform.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Troels (06-02-2003)
Kommentar
Fra : Troels


Dato : 06-02-03 20:13


> Database-håndbogen af Joakim Dalby er en udmærket introduktion til
> relationelle databaser. Den tager ikke udgangspunkt i nogen
> specifik database, men er grundig i beskrivelsen af hvordan man
> opbygger en database med flere relaterede tabeller.

Takker igen. Den er i første omgang reserveret på biblioteket. Så må jeg se
om det er en jeg senere hen vil investerer i.
Forresten kom jeg i tanke om at et nummer jo også kunne findes på to plader.
Både det originale og en opsamling, men det laves vel på samme måde som
personerne linkes til et eller flere bands. Altså sådan:

tbl_findes_paa
nummerID
pladeID

Eller findes den information allerede i tbl_numre? Hvor man opfatter hver
enkelte sang som en entitet (er det korrekt brug af ordet?) og ikke den
enkelte indspilling af numret som en entitet. Ved eftertanke er det nok
smartest at opfatte hver sang på hver album sådan.

/Troels



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste