1

我一直试图在任何地方找到我的问题,但我找不到答案。(这里的一切都是一个例子)我有一个产品表......

产品(父表)

idProduct(PK) _ __ _ ProdName _ ___ Prod_Price _ ___ Prod_Type

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

电影(儿童表 1)

idMovie(PK) _ ___ idProduct(FK) _ ___ Mov_Lenght _ ___ Mov_Category

    1               1               93             Action
    2               4               87             Drama

书籍(儿童桌 2)

idBook(PK) _ ___ idProduct(FK) _ ___ idAuthor(FK) _ ___ Book_Number_Pages

    1               2               43                500

游戏(儿童桌 3)

idGame(PK) _ ___ idProduct(FK) _ ___ Game_Category _ ___ Game_Console

    1               3               Sports           XBOX 360

问题是我想要PRODUCTS表和 Children 表之间的一对一关系。因此,如果PRODUCTS中idProduct上的主键作为外键位于子表上,则该值不会在同一个表或其他两个表上重复(一对一但有多个表)。我使用 MySQL WorkBench 作为 RDBMS 我必须指定哪些规则才能发生这种情况。

谢谢你的帮助

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

4

1 回答 1

0

You can make your foreign keys in the child tables as primary keys, this way you would solve the one-to-many with child tables.

Regarding across child tables, maybe you can use triggers to check if the PK existing elsewhere before inserting the record.

于 2013-08-18T02:37:06.483 回答