У меня есть приложение для iOS, где пользователи могут создавать Sessions
.A Session
в основном состоит из дополнительной аудиозаписи (сохраненной локально) и некоторых характеристик, относящихся к сеансу.
Пользователи также могут:
- Создание папок (которые также создаются на устройстве)
- Переименование аудиофайла
- Переименование папок
- Переместить аудиофайл в другую папку.
- Переместить папку в другую папку.
Прямо сейчас, когда сеанс завершен, я сохраняю его в базе данных вформат, подобный следующему:
var id: String = ""
var duration: Double = 0
var filename: String?
var path: String = ""
var isDirectory: Bool = false
var data: SessionStats?
Кажется, что текущий дизайн базы данных чрезмерно связан с файловой системой.Проблема в том, что когда имя папки изменяется или перемещается, мне нужно обновить все поля path
в базе данных для сеансов, которые находятся в этой папке.Если папка удалена, мне также нужно найти всех дочерних элементов этой папки, чтобы удалить их из базы данных.Кажется также, что могут быть случаи, когда файловая система и база данных не синхронизируются (если обновление по какой-то причине не удалось).
Существует ли лучшая структура для этого?Сейчас я использую realm
для базы данных, но я открыт для всех решений.