我认为以下示例将最好地解释这种情况.假设我们有以下表结构:
-------------------------------------
Member1 int NOT NULL (FK)(PK)
Member2 int NOT NULL (FK)(PK)
-------------------------------------
Statust char(1) NOT NULL
Run Code Online (Sandbox Code Playgroud)
以下是该表的表格内容:
Member1 Member2 Status
----------------------------
100 105 A
Run Code Online (Sandbox Code Playgroud)
我的问题是如何实现唯一性,以便下面的INSERT语句将基于表中已有的那一行失败.
INSERT status_table (Member1,Member2,Status) VALUES(105,100,'D');
Run Code Online (Sandbox Code Playgroud)
基本上,我试图模拟两个成员之间的关系.无论我们有(100,105)还是(105,100),状态字段都是相同的.
我知道我可以使用before_insert和before_update触发器来检查表中的内容.但我想知道是否有更好的方法来做到这一点......我的数据库模型应该是不同的......
sql sql-server primary-key foreign-key-relationship relational-database