Problem med Integritetsvillkor

Databaser & SQL

3 svar · 522 visningar · startad av Lark

Medlem sedan juni 20072 inlägg
Trådstart#1

Håller på med att strukturera upp en databas och har stött på ett litet problem.

Jag har en tabell som innehåller Medlemmar, en med Grupper och en med Bloggar. Både Medlemmar och Grupper äger varsin Blogg.

Titta på första bilden.

Problemet med denna struktur är att om jag nu skulle radera en Medlem så skulle inte medlemmens Blogg raderas. Jag vill ha ett integritetsvillkor som gör att varje blogg måste tillhöra en Medlem eller en Grupp.

Titta på andra bilden.

Om jag istället väljer denna struktur så funkar integritetsvilkoret men då måste jag ha två referensfält i Blogg-tabellen. Ett som pekar på Medlem och ett till Grupp. Då en blogg inte kan tillhöra både en Medlem och en Grupp känns detta onödigt.

Hur ska jag lösa detta?

model1.pngmodel2.png
Medlem sedan dec. 19996 721 inlägg
#2

Om du vill lösa det med referensintegritet så är alt. 2 det rätta sättet. Inte så snyggt, nej, men en naturlig följd av upplägget.

Medlem sedan juni 20003 076 inlägg
#3

emission skrev:

Inte så snyggt, nej, men en naturlig följd av upplägget.

Hmm, jag har också gjort enligt alt. 2 förrut vet jag.
Om det inte är bra databasdesign, hur hade du löst det?

Medlem sedan juni 20072 inlägg
#4

Hittade på en lösning själv. Jag skapar en ny tabell "Profil" och låter Grupp och Medlem ärva från denna tabell. Då kan jag länka Bloggen till Profilen istället.

Vad tycker ni?

model3.png
324 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
201 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)