ВопросПринято методологии при использовании нескольких баз данных SQLite
Что такое общепринятый способ использования нескольких баз данных, которые записывают информацию о том же объекте, что в конечном счете, в конечном итоге, живущих в одной центральной базе данных?
Пример
Существует один основной SQL базы данных о деревьях.
Эта база данных содержит информацию об уникальных деревьях со всей Великобритании.
Для получения информации создается пустая база данных Sqlite (с той же схемой) и берется в дерево на телефоне.
Собранная информация затем сохраняется в базе данных Sqlite до тех пор, пока она не будет возвращена в основную базу данных, где она будет перенесена в основную базу данных.
Теперь это прекрасно работает, пока есть только одна база данных Sqlite для любого дерева за раз.
Однако, если два человека захотели собрать различную информацию для одного и того же дерева одновременно, когда они оба вернулись и попытались перенести свои данные в основную базу данных, были бы столкновений по их основным ключевым ограничениям.
ID Схемы (с примера данных)
Существует дерево таблица, которая имеет уникальный идентификатор, называемый treeID
TreeID - TreeName - Расположение
1001 - Теддингтон поле - Плимут
Branch стол
BranchID - BranchName - TreeID
1001-10001 - первый филиал - 10011001-10002 - второй филиал -1001
Оставить стол
LeafID - LeafName - BranchId 1001-10001-1 - Спальня - 1001-10001
1001-10002-2 - Ванная комната - 1001-10001
Возможные идеи
- Присвоить каждая база данных 1000 уникальных идентификаторов и затем они возвращаются, поскольку идентификаторы уже назначены, идентификаторы в каждой базе данных не будут сталкиваться.
Downfall
Это не очень динамична и может потерпеть неудачу, если один перерасход базы данных на своих заранее заданными идентификаторами.
Есть ли другой способ достичь такой же гибкости, но с учетом падения, упомянутого выше?
Ну, с одной стороны, как вы собираетесь уникально идентифицировать дерево? Это своего рода отправная точка для любых дальнейших соображений. Потому что, если вы не можете точно это решить в 99% + случаев, у вас будет довольно грязный дублированный набор данных. Из вашего вопроса это звучит почти так, как будто у вас есть идентификатор дерева. Можете ли вы рассказать о своих уникальных схемах? Уточнение: с точки зрения вашего бизнеса, а не с точки зрения базы данных. Является ли точное местоположение gps, например? –
Что касается вашей возможной идеи: так ли имеет значение id? Невозможно, чтобы «центральный» db просто создавал их по мере их вставки, и если они каким-то образом нуждались в синхронизации с мобильными базами данных, возвращайте значения. – Mackan
@JLPeyret, каждому дереву присваивается уникальное четырехзначное число. Таким образом, можно однозначно идентифицировать каждое дерево. Каждому дереву присваивается идентификатор в основной базе данных, и из него создается sqlite. Я думаю, что пример сбора информации о деревьях был плохим. Я изменю пример и добавлю дополнительную информацию. –