Вставка данных в двух таблицах, имеющих первичные и внешние ключи

голоса
-1

У меня есть две таблицы:

Таблица 1

  • Колонка 1: первичный ключ (действует как внешний ключ в таблице 2)
  • Колонка 2: внешний ключ (который является первичным ключом в таблице 2)

Таблица 2

  • Col 1: первичный ключ (действует как внешний ключ в таблице 1)
  • Колонка 2: внешний ключ (который является первичным ключом в таблице 1)

Как вставить данные в этих таблицах?

Задан 07/11/2018 в 20:00
источник пользователем
На других языках...                            


1 ответов

голоса
2

Такой дизайн не будет работать: команда вставки в обеих таблицах будут заблокированы друг с другом и, даже если вы сделаете внешний ключ в обоих таблице Nullable как предложено в одном из комментариев (потери ссылочной целостности в процессе), вставка операция не будет атомной вызывает потенциально много проблем.

Мне кажется, что вы пытаетесь реализовать многие ко многим отношения между двумя таблицами, если это так, вы должны создать 3 таблицы соотношение в этом случае:

TableA

  • PK_A
  • Field1_A
  • Field2_A
  • так далее...

TableB

  • PK_B
  • Field1_B
  • Field2_B
  • так далее...

ConnectingTable

  • PK_CT
  • PK_A (как внешний ключ)
  • PK_B (как внешний ключ)
  • FieldX
  • так далее...

Таким образом, вы можете подключить два таблиц в ManyToMany связи без перекрестных ссылок их

Ответил 07/11/2018 в 20:38
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more