Если я правильно понимаю вашу модель, у каждого Person
есть один ListPosition
для каждого списка, в котором она участвует.Допустим, у нас есть список доступа по их именам, поэтому у X людей есть позиции в списке X с одинаковыми listName
и sortKey
.
Я бы создал сущность List
, которая бысодержит атрибут sortKey
и затем использует его в дескрипторе сортировки.
entity List:
- sortKey : string
- ascending : bool
Создайте дескриптор сортировки и используйте его в запросе на выборку:
[NSSortDescriptor sortDescriptorWithKey:chosenList.sortKey ascending:chosenList.ascending];
Тогда у вас может быть столько списков, скольковы хотите, и вы можете легко использовать его ключ сортировки для сортировки всех людей.
Если вы хотите сохранить позиции в базе данных (вы не упомянули атрибут index
в вашем ListPosition
, иличто-то похожее), вы можете создать «объединенную сущность»:
entity PersonInList:
- index : integer
- person -> Person
- list –> List
Другая идея состоит в том, чтобы упорядочить набор Person
объектов непосредственно в List
сущности.