проблемы с целостностью ссылок (доступ 2007)

проблемы с целостностью ссылок (доступ 2007)

Я прошу о помощи специалиста, возможно, разработчика баз данных или администратора.

Я столкнулся с этой проблемой при настройке ссылочной целостности для двух таблиц. Проблема не в настройке ссылочной целостности, а в том, что после настройки этой ссылочной целостности она не допускает нулевых значений в другой таблице, что подразумевает, что обе таблицы должны содержать, вероятно, одинаковое количество строк, что сделает обе таблицы соответствующими.

Вот пример того, что я хочу сделать:

  • Я создаю таблицы, одну с названием «Stock» («Запасы»), которая предназначена для хранения товаров или аксессуаров, имеющихся в наличии в магазине, и другую таблицу с названием «Customer_Details» («Сведения_о_клиенте»).
  • Я хочу задать поле в обоих полях (т.е. поле с именем «доступность»), которое будет иметь тип данных «Да/Нет», это поле должно присутствовать в обоих полях.
  • Каждый раз, когда клиент приобретает определенный аксессуар, выбранный из таблицы «Наличие», он автоматически меняет значение поля «Наличие» в таблице «Наличие».

Все, что я знаю и пытаюсь сделать, это установить ссылочную целостность в окне отношений, но, к сожалению, это не работает,

Я любезно ищу того, кто сможет мне объяснить, как это сделать, поскольку я новичок в Access 2007.

решение1

«Проблема, с которой я столкнулся, заключается в том, что после настройки этой ссылочной целостности она не допускает нулевых значений в другой таблице»

Nulзначения допускаются, но есть ограничения:

Однако вы можете ввести значение Null во внешний ключ. Это указывает на то, что записи не связаны. Например, вы не можете иметь заказ, назначенный клиенту, которого не существует. Однако вы можете иметь заказ, который не назначен никому, введя значение Null в поле CustomerID.


ИсточникКак определить связи между таблицами в базе данных Access

Ссылочная целостность

Ссылочная целостность — это система правил, которую Access использует для обеспечения допустимости связей между записями в связанных таблицах и для того, чтобы вы случайно не удалили или не изменили связанные данные. Ссылочную целостность можно установить, если выполняются все следующие условия:

  • Соответствующее поле из первичной таблицы является первичным ключом или имеет уникальный индекс.
  • Связанные поля имеют одинаковый тип данных. Есть два исключения. Поле AutoNumber может быть связано с числовым полем, имеющим настройку свойства FieldSize, равную Long Integer, а поле AutoNumber, имеющее настройку свойства FieldSize, равную Replication ID, может быть связано с числовым полем, имеющим настройку свойства FieldSize, равную Replication ID.
  • Обе таблицы принадлежат одной и той же базе данных Access. Если таблицы являются связанными, они должны быть таблицами в формате Access, и вы должны открыть базу данных, в которой они хранятся, чтобы установить ссылочную целостность. Ссылочная целостность не может быть принудительно применена для связанных таблиц из баз данных в других форматах.

При использовании ссылочной целостности применяются следующие правила:

  • Вы не можете ввести значение в поле внешнего ключа связанной таблицы, которое не существует в первичном ключе первичной таблицы. Однако вы можете ввести значение Null во внешний ключ. Это указывает на то, что записи не связаны. Например, вы не можете иметь заказ, который назначен клиенту, который не существует. Однако вы можете иметь заказ, который не назначен никому, введя значение Null в поле CustomerID.
  • Вы не можете удалить запись из первичной таблицы, если соответствующие записи существуют в связанной таблице. Например, вы не можете удалить запись о сотруднике из таблицы «Сотрудники», если в таблице «Заказы» есть заказы, назначенные этому сотруднику.
  • Вы не можете изменить значение первичного ключа в первичной таблице, если эта запись имеет связанные записи. Например, вы не можете изменить идентификатор сотрудника в таблице «Сотрудники», если в таблице «Заказы» этому сотруднику назначены заказы.

Связанный контент