20. september 2008 - 19:12Der er
12 kommentarer og 1 løsning
Foreign keys, automatisk sletning
Hvis jeg har 2 tabeller:
Firma -Navn VARCHAR -Adresse INT, FOREIGN KEY til Adresser
Adresser -ID INT -By VARCHAR
Hvordan gør jeg så, så hvis jeg sletter firmaet, så bliver adressen også slettet? Er jeg nød til at bruge 2 delete queries eller kan det gøres anderledes så databasen får bedre integritet?
1 adresse -> mange firmaer => sletning af adresse sletter firma 1 firma -> mange adresser => sletning af firma sletter adresser 1 firma -> 1 adress => kun en tabel saa intet problem
grunden til at jeg har lavet en tabel kun for adresser, er at jeg også skal bruge adresser i andre tabeller og så antager jeg at det er mere effektivt og lettere at udvide på måde.
Men dvs. at der faktisk ikke er noget godt nok svar på mit spørgsmål?
En adresse, der ikke bliver brugt er vel ligemeget - den fylder lidt, men skader ikke. Du kan så en gang imellem, fx en gang om måneden, løbe dine tabeller igennem, og finde de adresser, der ikke længere bruges, og slette dem.
Eller - min anbefaling - lave din struktur af databasen lidt om. Databaser er beregnet til at håndtere data, og der er ingen fidus i at du forsøger at spare et par bytes hist og her.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.