Сохранение связанных записей без предварительного сохранения ссылочной записи - PullRequest
1 голос
/ 31 августа 2009

Я не уверен, как это объяснить, поэтому я постараюсь сделать это как можно яснее.

У нас есть веб-приложение для регистрации дел. Когда вы добавляете заявку, вы можете добавлять контакты и вложения в эту заявку.

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

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

Какие существуют различные решения, которые можно реализовать?

1 Ответ

0 голосов
/ 31 августа 2009

Одним из вариантов является введение таблиц связывания; так вместо:

                               contact
ticket                         -------
------                         PK id
PK id <----------------------  FK ticketid

Вы можете иметь:

ticket       ticket_contact
------       --------------    contact
PK id <----- FK ticketid       -------
             FK contactid ---> PK id

Теперь вы можете сохранять contact записей до ticket (или ticket вначале) - и просто добавлять ссылки на записи, когда у вас есть оба. Это также позволяет вам повторно использовать contact в сценариях, не связанных с ticket.

Другой (более простой) вариант - просто сделать FK обнуляемым ... это может быть хорошо, я думаю.

...