我遇到类似以下连接表的情况:
A_ID B_ID
1 27
1 314
1 5
我需要在表上设置一个约束,以防止输入重复的组。换句话说:
A_ID B_ID
2 27
2 314
2 5
应该失败,但是
A_ID B_ID
3 27
3 314
应该成功,因为它是一个独特的群体。
我想到的两种方式是:
- 根据订单在物化大小视图中旋转表格,并在枢轴字段上放置一个唯一键。我不喜欢这个,因为在Oracle中我必须限制组中的行数,因为两个转向规则和32列索引限制(考虑到解决第二个问题的方法,但仍然如此)。 LI>
- 在B_ID的组合上创建一些唯一的哈希值,并使其唯一。也许我不够数学家,但我想不出一种方法可以做到这一点,不会限制我可以用于B_ID的值的数量。
醇>
我觉得这里有一些显而易见的东西,比如我可以添加某种排序列并设置一个不同的唯一键,但我已经做了很多阅读而没有想出来任何东西。也许我继承的数据模型存在缺陷,但我无法想到任何会给我类似灵活性的东西。