← Back to team overview

sslug-teknik team mailing list archive

Re: SQL - select intersect except

 

"Bjørn Bille Højte" <bjoern@xxxxxxxxxxxxx> wrote in message
news:Pine.LNX.4.33L2.0202182149290.1836-100000@xxxxxxxxxxxxxxx...
On Sun, 17 Feb 2002, Björn Lundin wrote:

Det forekommer mig, at du blander design og bekvemmelighed sammen.
Det at du har "forfattere" <--> "relationstabel" <--> "værker" er et
designspørgsmål. Det kan ikke gøres bedre
Det, at du har eksempler på, at de samme x forfattere har tilknytning til
flere værker, og derfor gerne ville kunne oprette en ny klump forfattere (de
samme) med et andet værk er et bekvemmelighdes problem, som du ikke må lade
forplumre dit design. Hvis det virkeligt sker så tit, så det er generende,
så lave en tabel med forfattergrupper, og giv i dit program adgang til at
vælge en klump af forfattere på en gang.

Hvad angår brugen af isbn som key, er det den eneste fornuftige løsning.
De bøger, der ikke har et isbn nummer, tildeler du blot et. Start med nummer
1. Du skal jo ikke senere kunne søge på det ikke eksisterende isbn nummer,
men alene have en unik key på posten. Du skal til gengæld kunne søge på et
eksiterende isbn nummer, hvis nogen skulle spørge dig, om du kender denne
eller hin (isbn registrerede) bog.
Det forkommer mig, at du gør dig unødige bekymringer på det punkt.

Det virker altså også lidt, som om du har en opfattelse af, at en databases
design har noget som helst at gøre med, hvad man vil trække ud af den. Det
har det ikke.
Björn Lundins råd om tabel <--> relationstabel <--> tabel giver et nydeligt
og robust design, som du altd kan få de ønskede oplysninger ud af. Samtidigt
giver den dig den frihed, at du kan slette poster i begge tabeller med
kaskadevis sletning i relartionstabellen, uden at det koster i den anden.





Follow ups

References