Hej! Jo, det kan du, men kanske inte i Visio... Varför inte lägga till en tabell? Jonas, designen är klart vettig relationsteoretiskt. >Jo, det kan du, men kanske inte i Visio...Samma FK flera gånger i samma tabell...
Har en användardatabas där alla användare, oavsett roll i systemet ligger i samma tabell, ungefär såhär:
Users
---------------
UserID (PK)
UserName
PassWord
UserRoleID (FK)
Har sedan en tabell där användare kan utvärdera andra användare. Utvärderingarna importeras från ett annat system och den som importerar är också användare i mitt system. I förkortad form ser tabellen ut så här:
Evaluations
-------------------
EvaluationID (PK)
EvaluatorID (FK1)
StudentID (FK2)
ImporterID (FK3)
FK1, 2, och 3 i evaluations mappar alltså samtliga mot UserID i Users. För att ytterligare komplicera saken så är det tillåtet (om än ovanligt) för FK1 och FK3 att i en och samma post ha samma värde.
Men Visio, som jag modellerar i, protesterar mot detta. Det tycks anse att jag inte kan ha flera främmande nycklar pekande mot samma primärnycklar, åtminstone inte sålänge relationen dem emellan är identisk (samma kardinalitet och verb).
Så mina frågor är:
Kan jag inte det?
Om svaret är "nix, det går inte": Hur lyder i sådana fall regeln som förbjuder detta?
Om "klart du kan grabben": Hur då?
Jag skulle förstås kunna splitta upp t.ex. Evaluations-tabellen och ha en kopplingstabell där EvaluationID mappas mot EvaluatorID, en där EvaluationID mappar mot StudentID osv. Men det känns inte riktigt klockrent. Eller?
mvh
/JonasSv: Samma FK flera gånger i samma tabell...
Designa i SQL Enterprise Manager - Diagram, så funkar det.
/mickeSv: Samma FK flera gånger i samma tabell...
Evaluationrole
----------------
EvaluationroleID (PK)
EvaluationroleDesc
och ändra Evaluations till:
Evaluations
-------------------
EvaluatorID (FK1) (PK)
EvaluationroleID (FK2) (PK)Sv: Samma FK flera gånger i samma tabell...
Att Visio inte fattar det är bara att beklaga.. :)
Jag har mycket begränsad erfarenhet av Visio tyvärr..
OlaSv: Samma FK flera gånger i samma tabell...
>Designa i SQL Enterprise Manager - Diagram, så funkar det.
OK, tackar! Det tipset löste problemet, var bara att skapa relationerna i Enterprise Manager (vilket var problemfritt) och sen "reverse engineera" in tabellerna ifråga i Visio och se hur Visio tolkade dem.
Det visade sig då att jag bommat att verb phrasen var tvungen att vara unik för respektive FK-relation för att Visio skulle validera.
Höll på att köra huvudet i väggen ordentligt där, tack allihop!
mvh
/Jonas