我得设计一张移动电话和西姆斯的桌子。一些手机有超过一个SIM插槽(2)。有些手机没有模拟市民(或只有1),任何1 SIM只能在0或1电话(S)。
一个具有PHONE_ID、SIM_ID的表是起点。这两列都是空的。一个主键(PHONE_ID,SIM_ID)允许任何手机有超过一个,但不幸的是,它也允许任何一个SIM在多个手机!我如何确保任何一个SIM只能在一个手机,而仍然允许任何数量的手机没有模拟人生?
发布于 2017-11-13 09:04:22
一张桌子
您有两种类型的实体,因此几乎肯定需要两个表来对它们进行建模。由于关系是一对多的关系,从SIM方面来说,它应该有一个可空的外键到电话表。有点像
Sim
============ Phone
ID (PK) =======
inPhone (FK) ----> ID (PK)这样,SIM要么在手机里,要么在浮动。如果要在模式级别强制执行每个电话中最大数量的SIMs,则需要自定义检查约束或触发器。
发布于 2017-11-13 08:50:16
我只需在"sim“表上做一个FK到电话。一部手机可以有多个模拟人生或0。
https://dba.stackexchange.com/questions/190743
复制相似问题