And*_*ner 5 sql oracle database-design constraints data-modeling
我试图在表A上创建约束,以检查表B中是否存在一组记录。我可以使用外键,但是问题是表B中的数据不唯一。
有没有一种方法可以创建这样的约束而不创建触发器?
编辑:我不能更改表B的结构。
外键是1:N关系。约束的引用端只能有一个父记录。这就是为什么我们只能建立引用唯一键的外键约束的原因。
您似乎想要一个M:N的约束。这不适用于关系模型。也许您需要的是一个交叉表(AB),该表将表A中的许多记录与表B中的许多记录链接在一起?实际上,取决于您的实际需求,可能会有几种不同的建模解决方案。
触发器不起作用,部分是因为它们无法缩放,但主要是因为它们在多用户环境中不起作用。