我有一个包含三个表的 MS Access 数据库:
Foods (Id, Food_Name, Food_Desc)
Ingredients (Id, Ingredient_Name)
IngredientsFoods_mm (Id, Id_FoodsFK, Id_IngredientsFK)
...在多对多关系中,IngredientsFoods_mm
链接其他两个表的表在哪里。
现在,我制作了一个带有子表单的表单,用于将配料分配给食物。主表单中有Food_Name
和Food_Desc
字段,子表单中有Ingredient_Name
字段(组合框)。似乎运行良好,但问题是,当我输入表中已有的配料时Ingredients
,它会创建重复记录,而不是分配适当的记录。
我尝试通过在字段中设置没有重复的索引来避免这种情况Ingredient_Name
,但是 Access 告诉我这会产生完整性错误。
问题是,如何避免Ingredients
从子表单输入信息时在表中创建重复记录?
答案1
Ingredients
我认为您的问题在于,当您应该在表中插入Foods.Id
和表Ingredients.Id
之间的关系时,您却试图将其插入表中IngredientsFoods_mm
。
确保您的关系定义明确,并且的主键由和IngredientsFoods_mm
组成。Id_FoodsFK
Id_IngredientsFK
这里是对 Access 中关系的解释。它涵盖了如何构建正确的多对多关系模型。 https://support.microsoft.com/en-us/kb/304466
答案2
我有一张出租房产和其他东西的表格,但我想将数据标准化。我把每个表格中应该包含的所有数据放在一起,所以我知道要创建什么表格,但我不知道如何只为在不同场合租过 2 套房子的人输入一个数据?我是否应该输入一个数据而不输入另一个数据?