У меня есть база данных 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 ответ1

0

Я думаю, что ваша проблема в том, что вы пытаетесь вставить в таблицу Ingredients когда вы должны вставить отношения между Foods.Id и Ingredients.Id через таблицу IngredientsFoods_mm .

Убедитесь, что ваши отношения четко определены и что первичный ключ IngredientsFoods_mm сформирован из Id_FoodsFK и Id_IngredientsFK .

Здесь объяснение отношений в доступе. В нем рассказывается, как составить правильную модель отношений «многие ко многим». https://support.microsoft.com/en-us/kb/304466

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .