在每个类型架构的表中,假设我有一个类型Person,其中包含两个子类型student和teacher。学生不能成为老师,老师也不能成为学生。
以下是迄今为止我知道如何设置这些内容的最佳方式:
Geometry
ID int, PK
Name string
Point
ID int, PK, FK
X float
Y float
Line
ID int, PK, FK
StartPoint int, FK
EndPoint int, FK
请注意,对于子类型,主键也是Geometry的外键。如何确保没有Point和Line的Geometry?是否存在某种相互排斥的约束?
如果唯一的解决方案是使用类似供应商的触发器,我最好这样做或者在其他地方强制执行此操作,例如稍后的通信或客户端?
谢谢你!答案 0 :(得分:0)
在StackOverflow和数据库管理员上有一些类似的问题可以作为一个很好的参考点。请参阅此相关问题:
How do I model one entity that references one of several other entities in SQL?