Совместное использование базы данных / управление версиями - PullRequest
1 голос
/ 17 марта 2010

У меня есть вопрос, но я не уверен, какое слово использовать.

Моя проблема: у меня есть приложение, использующее базу данных для хранения информации. База данных может иметь доступ (локальный) или на сервере (SQL Server или Oracle). Мы поддерживаем эти 3 вида базы данных. Мы хотим дать возможность пользователю делать то, что, как я думаю, мы можем назвать версионированием.

Позвольте мне объяснить: у нас есть база данных 1. Это мастер. Мы хотим иметь возможность создать базу данных 2, которая будет аналогична базе данных 1, но мы можем передать ее кому-то еще.

Каждый из них работает друг на друга, добавляя, изменяя и удаляя записи в этой очень сложной базе данных. После этого мы хотим, чтобы база данных 1 включала изменения из базы данных 2, но с возможностью отклонить некоторые изменения.

Для вашей информации, наше приложение уже многопользовательское, так почему бы нам просто не использовать этот многопользовательский режим и не забыть об этой версии? Это потому, что иногда нам нужно передать копию базы данных другой компании на другом сайте, и они не могут подключиться к нашему серверу. Они работают на их стороне, а затем мы хотим объединиться.

Есть здесь кто-нибудь с опытом такого типа требований? У нас много идей, но большинство из них требуют много работы, масштабной модификации базы данных или существующих запросов.

Это растущее приложение для C ++, насчитывающее 2 миллиона, поэтому переписать его невозможно!

Спасибо за любые идеи, которые вы можете дать нам!

J-F

Ответы [ 2 ]

0 голосов
/ 17 марта 2010

Вы ищете термин База данных Репликация . Вы можете Google, чтобы получить больше информации о теме (мой личный опыт ограничен).

0 голосов
/ 17 марта 2010

Это уже было сделано ical (старое приложение календаря SunOS).

То, что вы сохраняете / запоминаете / передаете, когда приложение вносит изменения, - это не просто содержимое базы данных, а фактический журнал изменений (например, «удалить запись с ID 1», «обновить запись с ID 2 с этими полями», « вставить запись с этими полями ")

Таким образом, вы можете применить эти изменения к основной БД позже, И отфильтровать их перед применением

...