Database 在一对一关系中,两个子集表与外键共享来自另一个表的相同主键
我一直在到处寻找我的问题,但我找不到答案。 (这里的所有内容都是一个例子) 我有一张产品表 产品(父表) idProduct(PK)\uuuuuuuuuu\ProdName\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuDatabase 在一对一关系中,两个子集表与外键共享来自另一个表的相同主键,database,relationship,relational,Database,Relationship,Relational,我一直在到处寻找我的问题,但我找不到答案。 (这里的所有内容都是一个例子) 我有一张产品表 产品(父表) idProduct(PK)\uuuuuuuuuu\ProdName\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 1 Top Gun 5.95 Movie 2 Great expectatio
1 Top Gun 5.95 Movie
2 Great expectations 12.45 Book
3 Fifa 2013 14.99 Game
4 Ghost 6.75 Movie
1 3 Sports XBOX 360
电影(儿童表1)
idMovie(PK)\uuuuuuuuidProduct(FK)\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
1 1 93 Action
2 4 87 Drama
书籍(儿童表2)
idBook(主键)\uuuuuuuuiProduct(FK)\uuuuuuuuuiAuthor(FK)\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
1 2 43 500
游戏(儿童表3)
idGame(PK)\uuuuuuuuuidProduct(FK)\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
1 Top Gun 5.95 Movie
2 Great expectations 12.45 Book
3 Fifa 2013 14.99 Game
4 Ghost 6.75 Movie
1 3 Sports XBOX 360
问题是,我希望在产品表和子表之间建立一对一的关系。
因此,如果来自PRODUCTS的idProduct上的主键作为外键位于子表上,则该值不会在同一个表或其他两个表上重复(作为一对一,但使用多个表)。
我使用MySQL WorkBench作为RDBMS,我必须指定哪些规则才能做到这一点
谢谢你的帮助
对不起,我的英语不是我的母语。您可以将子表中的外键作为主键,这样您就可以解决子表中的一对多问题 关于跨子表,在插入记录之前,也许可以使用
触发器
检查PK是否存在于其他位置