VB.Net & Access - Установите два внешних ключа, которые ссылаются на одну таблицу / поле - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть база данных Access, где я хочу хранить контакты в компании: В этой базе данных у меня есть таблица с именем «пользователи», где я храню пользователей который будет иметь доступ к базе данных. В основной таблице, названной «контакты», два из моих полей "insert_user" и "contact_user" относятся к пользователю кто ввел контактную информацию и пользователь, который фактически сделал контакт. Как я думаю, мне придется установить оба поля как внешние ключи в той же таблице / поле, а именно «пользователи» / «имя пользователя».

Итак: Я установил два ограничения внешнего ключа в двух разных полях ("insert_user", "contact_user"), , которые ссылаются на одну и ту же таблицу / поле ("users" / "username") в Доступ к базе данных с использованием VB.Net OleDB (см. Оператор SQL ниже)

ALTER TABLE contacts ADD CONSTRAINT insert_user_foreignkey FOREIGN KEY (insert_user) REFERENCES users (username)
ALTER TABLE contacts ADD CONSTRAINT contact_user_foreignkey FOREIGN KEY (contact_user) REFERENCES users (username)

Я открываю базу данных с помощью MS-Access. Я вижу, что все таблицы в порядке (как и должно быть).

Однако, когда я нажимаю на отношения в Access, я получаю все свои таблицы плюс таблицу с именем users_1, связанную с «contacts» / «contact_user» (таблица users только связана с «contacts» / «insert_user»)

Очень странно, что в табличном представлении Access я не вижу эту таблицу, а только в представлении отношений.

Вопросы

  • Правильно ли мое мышление (чтобы установить 2 внешних ключа, которые относятся к одной и той же таблице / полю)?
  • Что это за таблица "users_1" ?
  • Будет ли моя база данных работать или я что-то не так делаю?

1 Ответ

1 голос
/ 22 февраля 2011

Это способ, которым Access устанавливает отношения, когда таблица используется более одного раза.Если вы добавили другое отношение, оно будет для users_2 и так далее.Это только псевдоним, а не новая таблица.

...