2009-08-31 2 views
1

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

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

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

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

Каковы различные решения, которые могут быть реализованы?

ответ

0

Одним из вариантов является введение таблиц ссылок; поэтому вместо того, чтобы:

       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 нулевым ... что может быть ОК, я думаю.