【发布时间】:2014-04-16 08:03:49
【问题描述】:
我有一个数据结构,我必须在其中存储成对的元素。每对都恰好有 2 个值,因此我们使用了一个表,其中包含字段(leftvalue,rightvalue....)。 这些对应该是唯一的,并且如果更改了键,则它们被认为是相同的。
Example: (Fruit, Apple) is the same as (Apple, Fruit).
如果有可能以一种有效的方式,我会在字段上设置一个数据库约束,但不以任何成本为代价 - 性能更重要。
我们目前正在使用MSSQL server 2008,但可以进行更新。
有没有一种有效的方法来实现这一点?
【问题讨论】:
-
值得一提的是,任何约束都会对插入物产生成本效益。虽然您的检索查询可能会更快,这取决于约束,所以它甚至可能...
-
如果左值和右值是可互换的(如果
(left,right)和(right,left)是“相等的”,这通常是暗示的),你能不能对表应用约束,使得left是总是<right? -
性能是指插入性能吗?在不影响插入性能的情况下索引或约束数据是不可能的,总是有一些成本。
-
主要目标是实现读取性能,但插入不应受到太大影响。 Damien 的解决方案看起来是个好主意。
-
@Robert 读取性能永远不会受到约束的影响。如果有的话,它只会变得更快。
标签: sql sql-server sql-server-2008 unique