在一对一关系中,两个子表共享来自另一个表的同一主键作为外键



我一直在到处寻找我的问题,但我找不到答案。(这里的所有内容都是一个例子)我有一张产品表。。。

PRODUCTS(父表)

idProduct(PK)_____ProdName____产品_价格____产品类型

    1             Top Gun          5.95         Movie
    2        Great expectations    12.45        Book
    3            Fifa 2013         14.99        Game
    4              Ghost           6.75         Movie

MOVIES(子表1)

idMovie(PK)____ idProduct(FK)____ Mov_Lenght___ Mov_Category

    1               1               93             Action
    2               4               87             Drama

BOOKS(儿童桌2)

idBook(PK)____ idProduct(FK)____ idAuthor(FK

    1               2               43                500

GAMES(儿童桌3)

idGame(PK)____ idProduct(FK)____游戏类别___游戏控制台

    1               3               Sports           XBOX 360

问题是我想要PRODUCTS表和Children表之间的一对一关系。因此,如果PRODUCTSidProduct上的主键作为外键在子表上,则该值不会在同一个表或其他两个表上重复(作为一对一,但有多个表)。我使用MySQL WorkBench作为RDBMS,我必须指定什么规则才能实现这一点。

感谢的帮助

对不起,我的英语不是我的母语。

您可以将子表中的外键作为主键,这样您就可以用子表解决一对多问题。

关于跨子表,在插入记录之前,也许可以使用triggers检查PK是否存在于其他地方。

相关内容

最新更新