2009-11-04 2 views
0

У меня есть два объекта Data Data, например Account и House. У каждой учетной записи может быть список домов, а дом может находиться только на одной учетной записи, так что это регулярное отношение «один ко многим» с обратным.Как смоделировать выбранный экземпляр объекта из набора возможных экземпляров в Core Data?

Учетная запись также имеет «основное» свойство, которое указывает, какой из многих возможных домов является первичным или нет, если их нет. Идентичность основного имущества может измениться, и, конечно, может быть много счетов, каждый со своей собственной коллекцией домов.

Должен ли я моделировать это как взаимно однозначное отношение с обратным? Без?

Или я должен моделировать его с помощью атрибута, скажем, что хранит уникальную информацию о доме, такую ​​как номер посылки, и добавляем это к объекту Дома?

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

ответ

1

Я бы смоделировал его как взаимно-однозначное отношение с обратным. Хотя можно обойтись без обратной.

Рекомендуется всегда иметь обратный (следовательно, предупреждение компилятора Xcode, если в модели данных нет инверсии). Единственная причина, по которой я могу думать, чтобы не иметь обратного, - это пространство. Если у вас есть огромное количество домов на одну учетную запись, это сэкономит место в базе данных, чтобы отношения были односторонними (от учетной записи до основного дома).

Ваша альтернатива использования атрибута в каждом объекте займет примерно столько же места в базе данных и будет менее полезна. При этом у вас будут указатели между управляемым объектом (объектами), а не только способ найти их через атрибут.

+0

Одно из преимуществ взаимного отношения состоит в том, что если у меня есть Дом, я могу узнать, является ли он основным, просто глядя в обратную первичную связь. –

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