SQL-Server n:m Beziehung darf nur einmal aufgeführt sein



  • Hallo,

    ich bräuchte einen Mechanismus, der verbietet, bei einer n:m-Beziehung zwei gleiche Relationen in die Datenbank zu schreiben. Die Datenbank selber (MS SQL Server) soll dies verhindern. Konkret sieht eine Tabelle so aus:

    Id | RoleId | PermissionId

    Diese Tabelle verwaltet Berechtigungen, die einer Benutzerrolle zugeordnet werden können. Wie kann ich verhindern, dass zweimal die gleiche Relation in die Datenbank aufgenommen wird, zum Beispiel:

    1 | 4 | 8
    2 | 4 | 8

    Ich habe mich mal mit diesen Check Constraints auseinandergesetzt aber die können anscheinend nur für jedes Feld prüfen, ob eine Eingabe zulässig ist, dass zum Beispiel ein bestimmtes Format eingehalten wird. Gibt es andere Arten von Constraints die ich beim SQL Server einstellen kann? Wäre schön, wenn mir einer helfen könnte. 🙂



  • Wie wäre es mit einem unique-index?



  • Ah geil. Ich hab die ganze Zeit versucht, was mit Constraints zu frickeln. Ja man merkt schon, ich bin nicht so der Datenbank-Master. 😉

    Danke, hat funktioniert.


Log in to reply