Я попал в API, который дает список стульев с указанием их местоположения. Я сохраняю эти данные в своей локальной базе данных. Всякий раз, когда я получал обновленные данные, такие как добавление нового стула, обновление местоположения стульев и удаление стула из API, я должен синхронизировать данные сервера с моей локальной базой данных. Я также назначил эти стулья с различными разделами в локальной базе данных.
Стул серверный класс:
- ChairServerId
- Описание (уникальный ключ)
- Местоположение
Класс локальной БД:
- ChairLocalDBId
- Описание (Уникальный)
- место
У меня есть таблица разделов в локальной базе данных. Он имеет два столбца, то есть SectionID и SectionName.
Кроме того, между стульями и секциями есть реляционный стол. Имеет две колонки.
У меня есть таблица SectionChair в базе данных, также есть два столбца, то есть SectionID и ChairLocalDbId.
Ниже приведены различные тестовые случаи:
Синхронизация с тем же расположением стульев =>
Один: если несколько стульев идут с одного места, это не должно добавить в
локальная база данных. Это должно показать сообщение пользователю - показать дубликаты стульев
с местоположением для пользователя.
Два: в первый раз я сделал синхронизацию и добавили стул (стул один)
«LocOne» в локальной базе данных. Теперь я добавлю один или несколько стульев (chairTwo)
с тем же местоположением "locOne". Поэтому, когда я делаю Sync, он не добавит стул
localdatabase, а также не удаляйте стулOne из локальной базы данных. Это просто
показывает сообщение пользователю - показать дубликаты машин с расположением на
пользователь.
Удалить кресло с сервера (API) =>
Если стул удален с сервера, его следует удалить с локального
база данных. Валидация: если стул назначен на какие-либо секции, он не должен
удален. Следует дать исключение - «пожалуйста, сначала неназначенный этот стул
из раздела и снова выполните синхронизацию.
Добавить новый стул с Сервера (API) =>
Если на сервере добавлено кресло, его следует добавить в локальную базу данных.
Обмен местами =>
Один: 3. Если мы поменяем два или более стульев в API, местоположение также должно быть
своп в локальной базе данных. Пример: Председатель 234 на месте расположения и Председатель
345 по местоположению locTwo в API и локальной базе данных. После этого пользователь
поменяйте местами машины в API, например, кресло 234 в локации locTwo и кресло 345
на месте расположения. Когда я делаю синхронизацию, то же самое должно произойти в
локальную базу данных и обновите новое место для стула в местном
базы данных.
Два: 4. Основная проблема: если мы сделаем обмен как первый пункт, раздел также должен быть
обновлен в таблице SectionChair. Пример: Стул 234 расположен в 562 и является
в разделе 5 место Х. Коммутируется со стула 789, расположенного в 223
который находится в Разделах 8, Место Y. При синхронизации стул 234 должен измениться на
Раздел 8 Место Y и стул 789 должны измениться на Раздел 5 Место X.
Пожалуйста, предложите мне хороший подход.