webForumDet fria alternativet

Problem med Integritetsvillkor

Databaser & SQL

3 svar · 490 visningar · startad av Lark

Medlem sedan juni 20072 inlägg
Frågan#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
255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)