Обзор: я разрабатываю приложение для управления рестораном, и у меня есть объект под названием Order, в котором есть элементы. Поскольку ресторан может работать в течение многих лет, имея тысячи выполненных «заказов» и в интересах упрощения работы моего приложения в сети и обеспечения быстрой поддержки базы данных, я хочу представить концепцию ClosedOrder, которая является Заказ был оплачен, по сути.
У меня есть несколько вариантов сделать это: я мог бы добавить атрибут isClosed к моей сущности Order и выполнять все запросы на выборку для "открытых" ордеров с помощью предиката, но это оставляет проблему с большим количеством записей БД, через которую нужно проходить каждый раз, когда нужна выборка, что часто происходит с сущностью Order из-за рабочего процесса моего приложения. Если я правильно понимаю, создание субсубъекта 'ClosedOrder' также будет иметь ту же проблему, поскольку Core Data хранит все субэлементы в одной таблице в базе данных.
В этом случае глупо создавать совершенно отдельную сущность? Или это именно то, что мне нужно сделать? Я извиняюсь за общее отсутствие знаний о производительности базы данных. Core Data прекрасен тем, что он абстрагируется от необходимости узнавать об этом, но в то же время не может сделать это неважным, особенно в случае, когда производительность может серьезно ухудшиться, если мои пользователи слишком сильно его вытолкнут.