Avatar billede Deepone Nybegynder
03. april 2014 - 16:15 Der er 3 kommentarer og
1 løsning

Flere relationer imellem samme 2 tabeller

Hej Eksperter

Jeg sidder med et system, hvor jeg er løbet ind i et problem :)

Jeg har en Bruger tabel og en Afdeling tabel.
Hver bruger SKAL tilknyttes en hovedafdeling, som systemet skal vide hvilken er, men kan være tilknyttet andre.

Dette vil kunne lade sig gøre ved at både have en mange-til-mange relation og en 1-til-mange. Hvor hovedafdelingen er lagt som fremmednøgle i Brugertabellen og resten af afdelingerne i mange-til-mange tabellen.

Men vil hører om det er dårlig databasestruktur at lave 2 relationer imellem 2 tabeller, hvis ja, vil jeg gerne have ideer til hvordan det ellers kan løses ?
Avatar billede arne_v Ekspert
03. april 2014 - 16:26 #1
Alternativet ville vel vaere ingen FK til hoved afdeling og lave M:M tabellen med 3 felter - de to FK og en true/false om hovedafdeling.

Men den loesning vil jo ikke enforce at der kun kan vaere en hoved afdeling, saa set fra et teoretisk synspunkt er din loesning bedre.

Imidlertid kan der vaere praktiske fordele ved alternativet. Hvis der er mange forespoergsler hvor du bare skal joine paa afdeling uanset om den er hoved eller ej, saa giver alternativet altsaa simplere SELECT statements.
Avatar billede Deepone Nybegynder
03. april 2014 - 16:58 #2
Havde godt nok også overvejet din løsning. Men så ville der gå ged i systemet, hvis der er 2 rækker med samme bruger som er sat til true, ligesom du skrev.. Tror jeg holder mig til min egen løsning, med mindre jeg finder en bedre løsning.
Avatar billede arne_v Ekspert
04. april 2014 - 16:52 #3
Bare pas paa at du ikke ender med en zillion queries med en UNION.
Avatar billede Deepone Nybegynder
27. marts 2015 - 12:19 #4
Gammelt indlæg

Lukker!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester