小编Cri*_*ina的帖子

如何在字段顺序无关紧要的情况下实现唯一性

我认为以下示例将最好地解释这种情况.假设我们有以下表结构:

-------------------------------------
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

9
推荐指数
1
解决办法
248
查看次数