2015-09-08 4 views
0

Я пытаюсь создать модель Core Data для своего приложения. У меня возникают проблемы с определением атрибутов и отношений. Вот сценарийios Core Data Design Issue

У меня есть приложение для управления контрактами. Таким образом, основным объектом является Контракт. Он имеет Арендатор, но может иметь несколько Арендодатель s. Арендатор и Арендодатель s может быть Лицо или Компания Тип.

Я определил объекты, как показано в таблице ниже.

enter image description here

Я только создал Арендодателю и Арендатора ссылаться на них легко от контракта. Я чувствую, что Договор должен иметь отношения «многие» с именем арендодателей, так как договор может иметь несколько арендодателей. Проблема в том, что каждый Арендодатель может быть Лицо или Компания. То же самое касается арендатора, хотя он всегда будет одним из Договор.

Вот обновленный Снимок Арендодатель

enter image description here

& Арендатором Сущности

enter image description here

Можете ли вы помочь мне определить, что отношения должны создать из контракта до Арендодатель & & Арендатор (вместе с обратными отношениями, если есть)?

Вот диаграмма ER, которую я мог бы думать о своей голове! ;)

ER Diagram

Можете ли вы помочь мне определить, что отношения должны создать из контракта к Арендодателю & & Арендатором (наряду с обратными отношениями, если таковые имеются), с каждым из них либо Компания или a Лицо?

Благодаря

+0

сначала введите ER диаграмму –

+0

Я добавил диаграмму ER @SahebRoy. Спасибо, что обратились к нам! –

+0

Я думаю, вы должны определить сущность, возможно, «Контрагент», а затем создать как Субъекты Person, так и Company of Counterparty. Затем в Договоре отношения Арендодателя и Арендатора должны быть связаны с Контрагентом. – pbasdf

ответ

0

Я создал несколько структур данных, схожие с вашими.

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

Так что в вашем случае я бы подумать об использовании этой структуры ...

  • Удалить Entities арендодателем и арендатором;
  • Добавить новый объект под названием ContractRole со связями contract, company, person и contractRoleType.
  • Добавить новое предприятие под своим именем КонтрактRoleType с атрибутом type и общение contractRole;
  • к существующему Entities контракта, компании и Person, добавить новые отношения contractRole;
  • Объект КонтрактRoleType будет иметь как минимум два type s «Арендодатель» и «Арендатор».

Таким образом, для каждого Контракта вы вводите данные как минимум для двух Контрактов, один с ContractRoleType «Landlord» и один с ContractRoleType «Арендатор».

Я нахожу этот тип структуры данных очень гибким.

+0

Спасибо за ваш ответ. Как я узнал бы о ContractRole, будь то компания или человек? Возможно добавить еще один атрибут? –

+0

В моем ответе я предложил подобное ... добавить другое отношение (не атрибут) ... в этом случае отношение 'contractRoleType' с инверсным типом в объекте ** ContractRoleType **. Затем вы можете вводить типы по умолчанию в объект ** ContractRoleType ** во время запуска. – andrewbuilder

+0

В действительности даже это мое предложение не требуется, поскольку какое отношение установлено в Entity ** ContractRole ** будет определять, является ли «тип» «арендодателем» или «арендатором». – andrewbuilder

Смежные вопросы