![]() |
1
8
独占弧
在哪里
另一个解决方案是制作一个通用的“超级表”,这两个表
在OO建模中:
让SetOwners表生成id值。必须先插入setowner,然后才能插入用户或学校。所以把身份证放在用户和学校里 不 自动递增;只需使用setowner生成的值:
这样,学校和用户都不会使用给定的id值。
你需要加入。如果您从给定的集合进行查询,并且您知道它属于某个用户(不是学校),那么您可以跳过加入集合所有者,直接加入用户。连接不一定非得按外键进行。
您知道SetOwner\u id必须与一个或另一个表、用户或学校匹配,但不能两者都匹配。 |
![]() |
2
2
有一点需要注意:还不完全清楚数据模型中的集合是什么。 我在质疑你的数据模型。
只需为学校集和用户集创建单独的表。这将使反向查询更容易,因为您不必检查Sets表中的空关系,就可以知道它是真正的UserSet还是SchoolSet。 |
![]() |
3
1
您必须使用触发器来强制执行此业务规则,因为MySQL有但不强制执行CHECK约束(在任何引擎上)。 |
![]() |
Aimal · 将postgreSQL列值从大写转换为大小写 2 年前 |
![]() |
SupaMonkey · MySQL数据库布局/建模/设计方法/关系 6 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
![]() |
Harrison W. · SQL选择所有不在一起工作的ID号对 6 年前 |
|
Josh_GAA · MS Access多对多关系 7 年前 |
![]() |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 7 年前 |
![]() |
TerminatorX · MySQL数据库所需金额 7 年前 |
|
Asim Minhas · 如何获取表中最后插入的记录? 7 年前 |
![]() |
Perino · yii2模型查找与关系 7 年前 |