У меня есть модель данных, которую я пытаюсь перенести из структуры таблицы на основе SQLite в модель Core Data. В моей структуре SQLite есть таблица зон и таблица TransitLogs. TransitLog может иметь следующее (в моей схеме sqlite) start_zone_id end_zone_id
Каждый из которых является внешним ключом для таблицы зон. Это отлично работает в SQL. Но при переходе на Core Data мне трудно понять, как это моделировать.
Моя первая попытка привела к тому, что у меня было два отношения в моем TransitLog Entity с атрибутами отношения startZone и endZone, которые указывают на Зону (извините, не удалось опубликовать снимок экрана xcode, поскольку это мой первый пост здесь)
У меня есть вопрос, как обрабатывать обратные отношения для атрибутов отношений startZone и endZone. Они мне не нужны? В документации и книгах, которые я читал по этой теме, лучше всегда использовать обратную зависимость, но мне интересно, в этой конкретной ситуации, если она неприменима. Или я просто неправильно моделирую это в Core Data.
Спасибо за любой совет. тип Arity = Int Тип Аргументы = [Сущность] type Entity = String Это позволило бы создать ...
Рассмотрим следующее
data Predicate = Pred Name Arity Arguments
type Name = String
type Arity = Int
type Arguments = [Entity]
type Entity = String
Это позволит создать
Pred "divides" 2 ["1", "2"]
Pred "between" 3 ["2", "1", "3"]
, но также "незаконный"
Pred "divides" 2 ["1"]
Pred "between" 3 ["2", "3"]
"Illegal", потому что арность не соответствует длина списка аргументов.
Если не использовать такую функцию
makePred :: Name -> Arity -> Arguments -> Maybe Predicate
makePred n a args | a == length args = Just (Pred n a args)
| otherwise = Nothing
и экспортировать makePred только из модуля Predicate, есть ли способ обеспечить правильность конструктора значения?