我一直试图在任何地方找到我的问题,但我找不到答案。 (这里的一切都是一个例子) 我有一张产品表...
产品(父表)
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
BOOKS(儿童表2)
idBook(PK) _ ___ idProduct(FK) _ ___ idAuthor(FK) _ ___ Book_Number_Pages
1 2 43 500
GAMES(儿童表3)
idGame(PK) _ ___ idProduct(FK) _ ___ Game_Category _ ___ Game_Console
1 3 Sports XBOX 360
问题是我希望 PRODUCTS 表与子表之间建立一对一的关系。 因此,如果来自 PRODUCTS 的 idProduct 上的主键作为外键在子表上,则该值不会在同一个表或其他两个表上重复(如一对一,但有多个表)。 我正在使用MySQL WorkBench作为RDBMS我必须指定的规则才能发生。
感谢您的帮助
抱歉我的英语,而不是我的第一语言。
答案 0 :(得分:0)
您可以将子表中的外键作为主键,这样就可以解决子表中的一对多。
关于跨子表,也许您可以在插入记录之前使用triggers
检查其他地方是否存在PK。