我试着这样做:
带有RecipeID(主键和外键)和RecipeName(唯一)的 Recipe
表。
带有IngredientID(Primay和外键)和IngredientName(唯一)的Ingredient
表。
带有RecipeID,IngredientID和IngredientNme的RecipeDetail
表。
有任何线索吗?感谢
答案 0 :(得分:0)
Documentation解释了如何在表之间创建约束。要强制删除孤立记录,请使用ON DELETE CASCADE
。
还要确保外键支持is enabled.
您的创建脚本可能如下所示
CREATE TABLE RecipeDetail(
RecipeID INTEGER REFERENCES Recipe(RecipeID) ON DELETE CASCADE,
IngredientID INTEGER REFERENCES Ingredient(IngredientID) ON DELETE CASCADE,
PRIMARY KEY (RecipeID, IngredientID)
);
主键确保没有任何成分分配给配方两次。 IngredientName
不应存储在交集表中,这会导致冗余数据。