说我有以下表格和列:
comp:
id,
model
dvd:
id,
model
comp2dvd:
id,
id_comp,
id_dvd
计算机可以有多个DVD驱动器,即使是同一型号,也可以在多台计算机上显示DVD驱动器。我该怎么做才能让comp2dvd表只有现有的comp和dvd id?
由于
答案 0 :(得分:1)
为什么不直接使用连接表呢?您可以在连接表上添加约束,仅允许使用一个DVDID +计算机组合。
Computer -----> CompDVD <------ DVD --------> Model
ID CompID ID ID
DVDID
答案 1 :(得分:1)
如果没有将列或列组合标识为唯一(例如但不限于主键)的强制执行索引,则通常无法使用外键引用
comp应该将id作为主键
dvd应该将id作为主键
comp2dvd应该将id作为主键
comp2dvd应该将id_comp作为外键引用(comp.id)
comp2dvd应该将id_dvd作为外键引用(dvd.id)
不要让comp2dvd在列对(id_comp,id_dvd)上有唯一索引或约束,因为对于具有多个相同驱动器的计算机需要重复
答案 2 :(得分:0)
通过向id_comp和id_dvd添加外键?