2013-06-22 3 views
0

Я делаю базовую модель данных, и у меня есть клиентский объект, который имеет отношение «многие» к объекту «Назначение». Назначение может превратиться в транзакцию (если она была оплачена и т. Д.), И мне нужно отслеживать назначения клиентов, которые превратились в транзакции (где Transaction является сущностью вместе с другими атрибутами). Клиент может иметь несколько транзакций, а транзакция может иметь несколько Клиентов (необязательно). Если я установил отношения между транзакцией и клиентом, то я не думаю, что есть способ определить, какие из назначений превратились в транзакции, а какие нет ... Любая помощь относительно того, как я могу установить мою модель вверх для этого было бы полезно. СпасибоОшибка обмена данными с основными данными

ответ

0

Я думаю, что существует несколько способов сделать это. Это одно, я думаю, работает:

Если транзакция является другой сущностью, а Назначение имеет отношение «один к одному» к транзакции. Тогда вы можете оставить объект транзакции равным нулю, если он не оплачен. Если вы платите, вы создаете транзакцию и связываетесь со своим отношением к назначению и клиенту. Проверяя, является ли транзакция вашего Назначения нулевой, вы знаете, если она превращена в транзакцию или нет.

+0

Что такое сущность в данном случае? – Tometoyou

+0

Извините, я сделал редактирование, посмотрим, имеет ли это смысл сейчас. – John

0

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

  • даты (когда же преобразование произошло)
  • типа (сделал назначение трансформируют в сделку, был отменен или задержан)
  • и т.д.

и отношения:

  • из (первоначального назначения)
  • к (в результате сделки/назначения/и т.д.)

Таким образом, связь между клиентом и перевод будет выглядеть следующим образом

Client->Appointent->Transform->Transaction

Если единственное различие между Appointent и Transaction уделяется или нет, вы можете использовать только Transaction и флаг (оплаченный/не оплаченный).

Client->Transaction->Transform->Transaction