【问题标题】:SQL Server "two way" unique/primary key for 2 columns2列的SQL Server“双向”唯一/主键
【发布时间】:2014-02-20 02:08:23
【问题描述】:

如何使 2 列唯一,以便 (A,B) == (B,A)。

例如具有两列 UserId 和 FriendId 的表。

如果有一行具有值 (1,2) 并且有人尝试输入一行 (2,1),那么这是不允许的。

【问题讨论】:

  • 每次插入AB,同时插入BA
  • 这是开发中常用的做法吗?它会使桌子占用两倍的存储空间。
  • 双shmubble。当事情呈指数增长时,您必须开始担心。常见的?不知道。我用它。
  • 是的,通常在关联表中表示双重关系(例如,产品到相关产品)

标签: sql sql-server database


【解决方案1】:

您可以放置​​一个触发器来检查是否存在相反的情况,如果存在则撤消事务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2011-03-11
    • 2010-10-17
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多