Zodiax wrote :
> Jeg har en Access database, der indeholder nogle CD titler. Jeg vil
> også have at den skal indeholde navnene på de forskellige sange på
> cd'erne. Jeg havde først tænkt mig at smide alle sangnavnene ind i ét
> felt i samme række som CD titlen stod i, separeret med komma, men jeg
> hører at det er en dårlig løsning. Jeg kan ikke lige overskue hvordan
> jeg skal bygge databasen op så jeg undgår ovenstående problem, så jeg
> håber der er nogle der kan hjælpe mig lidt.
En løsning kunne være at splitte dine data op i to tabeller - en tabel
til CD-data og en tabel til track-data.
Tabel: CdData
| id | Kunstner | Titel | Udgivelsesaar |
------------------------------------------------
1 Karen Én til én 2001
2 Snap Cult of Snap 1990
Tabel: CdTracks
| id | Sang | Laengde | CdId |
----------------------------------------------------
1 Vis mig, at du er min mand 3.24 1
2 Guld og papir 3.54 1
3 Power of Snap 2.57 2
4 Snap rules ( :) ) 3.15 2
Hvis du så skal udtrække alle Karens numre, så finder du det unikke Id
for hendes CD og laver SQL som
SELECT id,Sang,Laengde FROM CdTracks WHERE id = 1
Resultatet af dette giver
1 Vis mig, at du er min mand 3.24
2 Guld og papir 3.54
Hvis du vil udtrække all CD-data for en sang i tabellen over sange, så
laver du en JOIN imellem de to tabeller
SELECT
d.Kunstner, d.Titel, d.Udgivelsesaar, t.Sang, t.Laengde
FROM
CdData d INNER JOIN CdTracks t ON t.Cdid = d.Id
WHERE
t.id = 1
Der giver
Karen | Én til én | 2001 | Vis mig, at du er min mand | 3.24
(det kan naturligvis gøres passende mere kompliceret end som så)
--
Jesper Stocholm
Gør Christiania en tjeneste - køb din hash et andet sted.