我有一个三个表,一个项目表,可能有很多项目,一个科目表,每个项目都有很多科目,还有一个条件表,每个科目都有一个条件,一个项目可能有很多条件。
鉴于主题必须位于其中一个项目中,如何根据项目链接到的条件来限制主题可以具有的条件。
希望这是有道理的。另外,我正在考虑使用 sqlite,但是如果不可能用数据库系统做这样的事情,是否存在可以做到的?最好是免费且基于 sql 的,即 mysql 或 postgresql。
谢谢。
编辑:一些示例;
项目 A 具有条件 1、2 和 3。所有条件都取自具有条件 1、2、3、4、5 的条件表。现在主题 X 是项目 A 的一部分,因此只应允许假设条件 1、2、3 而不是 4 或 5。
这可能吗?
最佳答案
看起来您需要类似的东西:
此设计的关键方面是使用识别关系以及生成的复合键。这使我们能够迁移 PROJECT.PROJECT_ID:
- 不只是直接到SUBJECT
- 也可以通过 CONDITION 然后到 SUBJECT。
这两条迁移“路径”最终都会合并到同一字段中(注意 SUBJECT.PROJECT_ID 前面的 FK1,FK2
),这确保当主题连接到条件时,它们都必须连接到同一个项目。
关于mysql - sql数据库中列值的多表约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998529/