Отношения SwiftData и веб-источник SQL ⇐ IOS
-
Anonymous
Отношения SwiftData и веб-источник SQL
Я довольно много читал о SwiftData и его предшественнике (Core Data), но есть один аспект платформы, на который я не могу найти ответа.
Большим преимуществом SwiftData является тот факт, что это граф объектов, то есть он автоматически управляет и сохраняет изменения в наборе данных по мере их использования в приложении iOS. Я понимаю, что SwiftData — это граф объектов и что он сам по себе сильно отличается от базы данных.
При этом одним из вариантов, который можно использовать для обеспечения устойчивости данных в рамках платформы SwiftData, является использование SQLite. Хотя программисту не нужно беспокоиться об UUID, внешних ключах и т. д. при использовании SwiftData, база данных в фоновом режиме по-прежнему создает и поддерживает эти связи с ключами и таблицами соединения.
У меня есть очень сложный набор данных в таблицах SQL в Интернете:
[*]Набор данных, который я сейчас использую, состоит примерно из 37 таблиц. [*]Некоторые таблицы имеют только одну связь, некоторые — несколько (5–10 типов дочерних записей, причем каждый тип дочерних записей может иметь несколько собственных записей). [*]Подавляющее большинство моих связей относятся к типу «один ко многим», но у меня есть несколько связей «многие ко многим», которые управляются с помощью таблиц соединений. [*]Некоторые записи имеют несколько уровней дочерних записей (т. е. производитель производит несколько моделей чего-либо, и каждая из моделей имеет один или несколько вариантов, и каждый из вариантов имеет один или несколько активов).
Мне хотелось бы, чтобы мое приложение могло синхронизировать некоторые из этих данных, чтобы работать в автономном режиме, что приведет меня к загрузке больших объемов данных из источника SQL, чтобы они были в режиме ожидания и готовы к использованию. Все связи уже созданы в онлайн-источнике и управляются с помощью внешних ключей, и их необходимо поддерживать после загрузки.
Вопросы:
[*]Как лучше всего загрузить данные из источника SQL, сохранить их на устройстве и воссоздать связи, чтобы я мог воспользоваться преимуществами платформы SwiftData? [*]Когда я загружаю записи, нужно ли мне убедиться, что мой сервер отправляет мне объект именно в том формате, который ожидается объектом SwiftData, чтобы иметь возможность заполнить все параметры? [*]На примере производителя со многими моделями и каждой модели со многими вариантами мне пришлось бы загрузить все дочерние модели и все дочерние варианты моделей, связанных с загружаемым производителем, чтобы иметь возможность чтобы иметь правильные данные при их обратной синхронизации с сервером?
Я довольно много читал о SwiftData и его предшественнике (Core Data), но есть один аспект платформы, на который я не могу найти ответа.
Большим преимуществом SwiftData является тот факт, что это граф объектов, то есть он автоматически управляет и сохраняет изменения в наборе данных по мере их использования в приложении iOS. Я понимаю, что SwiftData — это граф объектов и что он сам по себе сильно отличается от базы данных.
При этом одним из вариантов, который можно использовать для обеспечения устойчивости данных в рамках платформы SwiftData, является использование SQLite. Хотя программисту не нужно беспокоиться об UUID, внешних ключах и т. д. при использовании SwiftData, база данных в фоновом режиме по-прежнему создает и поддерживает эти связи с ключами и таблицами соединения.
У меня есть очень сложный набор данных в таблицах SQL в Интернете:
[*]Набор данных, который я сейчас использую, состоит примерно из 37 таблиц. [*]Некоторые таблицы имеют только одну связь, некоторые — несколько (5–10 типов дочерних записей, причем каждый тип дочерних записей может иметь несколько собственных записей). [*]Подавляющее большинство моих связей относятся к типу «один ко многим», но у меня есть несколько связей «многие ко многим», которые управляются с помощью таблиц соединений. [*]Некоторые записи имеют несколько уровней дочерних записей (т. е. производитель производит несколько моделей чего-либо, и каждая из моделей имеет один или несколько вариантов, и каждый из вариантов имеет один или несколько активов).
Мне хотелось бы, чтобы мое приложение могло синхронизировать некоторые из этих данных, чтобы работать в автономном режиме, что приведет меня к загрузке больших объемов данных из источника SQL, чтобы они были в режиме ожидания и готовы к использованию. Все связи уже созданы в онлайн-источнике и управляются с помощью внешних ключей, и их необходимо поддерживать после загрузки.
Вопросы:
[*]Как лучше всего загрузить данные из источника SQL, сохранить их на устройстве и воссоздать связи, чтобы я мог воспользоваться преимуществами платформы SwiftData? [*]Когда я загружаю записи, нужно ли мне убедиться, что мой сервер отправляет мне объект именно в том формате, который ожидается объектом SwiftData, чтобы иметь возможность заполнить все параметры? [*]На примере производителя со многими моделями и каждой модели со многими вариантами мне пришлось бы загрузить все дочерние модели и все дочерние варианты моделей, связанных с загружаемым производителем, чтобы иметь возможность чтобы иметь правильные данные при их обратной синхронизации с сервером?
Мобильная версия