说我有以下表和列:如何限制表连接两个表中的许多一对多的关系
comp:
id,
model
dvd:
id,
model
comp2dvd:
id,
id_comp,
id_dvd
的计算机可以有即使是同一型号的多个DVD驱动器,以及DVD驱动器可以出现在多台电脑上。我如何使comp2dvd表只能有现有的comp和dvd id?
谢谢
说我有以下表和列:如何限制表连接两个表中的许多一对多的关系
comp:
id,
model
dvd:
id,
model
comp2dvd:
id,
id_comp,
id_dvd
的计算机可以有即使是同一型号的多个DVD驱动器,以及DVD驱动器可以出现在多台电脑上。我如何使comp2dvd表只能有现有的comp和dvd id?
谢谢
不能正常有没有识别为唯一的列的一列或组合的强制执行措施的索引的外键引用(如,但不限于,一个主键)
排版应具有ID作为主键
DVD应该有id作为主键
comp2dvd应该有id作为主键
comp2dvd笑ULD有id_comp为外键引用(comp.id)
comp2dvd应该id_dvd为外键引用(dvd.id)
不要让comp2dvd对一列的唯一索引或约束(id_comp ,id_dvd),因为您需要具有多个相同驱动器的计算机的副本
通过添加外键到id_comp和id_dvd?
为什么不直接使用直接连接表?您可以在连接表上添加一个约束,以允许使用一个DVDID +计算机组合。
Computer -----> CompDVD <------ DVD --------> Model
ID CompID ID ID
DVDID
如果链接表只有id_comp和id_dvd,但这对我不起作用,这将工作。如果我尝试添加外键,则会出现此错误:表'dvd'中的列与现有主键或UNIQUE约束不匹配。 – Gromul 2010-06-02 02:04:06