Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение баз данных, Какие есть методы решения? 
:(
    Опции темы
Wisdom
Дата 10.4.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Здравствуйте.
Проблема такая. Есть локальная БД на одной машине и есть БД (аналогичная по структуре) на другой машине. БД в виде полных .sql-дампов. 
Вопрос: как можно объединить эти базы данных? Проблема в том, что в таблицах могут совпадать ключи. Т.е. в первой БД будут 5 записей с Id = 1...5 и во второй. 
Есть какие-либо способы решения данной ситуации? Скажу, что первичные ключи являются автоинкрементными. Возможно, если бы они изначально были рэндомно генерируемыми, то проблема бы отпала. Но имеем то, что имеем.. Заранее благодарю за любую полезную информацию.
PM MAIL   Вверх
DarkProg
Дата 10.4.2011, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Ну, возьмите создайте новую БД и в них укажите, свой новый ID, а старые просто как вторичное поле и вот оно счастье(или вообще убейте старые ID, если они вам более не нужны)


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Wisdom
Дата 10.4.2011, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Цитата(DarkProg @ 10.4.2011,  13:26)
Ну, возьмите создайте новую БД и в них укажите, свой новый ID, а старые просто как вторичное поле и вот оно счастье(или вообще убейте старые ID, если они вам более не нужны)

Обе БД живые, т.е. в них непрерывно вносятся новые данные. В определённый момент времени берётся дамп обеих БД. Нужно синхронизировать данные  в них. 
Впрочем, уже придумал одно из решений. Первичные ключи установить как BIGINT и рэндомно генерировать ключи для каждой новой записи. При размерности в 20 порядков, думаю, совпадений ну будет. Только пока не знаю, каким образом задать автогенерацию рэндомных значений для новых записей. Писать триггеры на каждую таблицу не очень хочется...

PM MAIL   Вверх
Akina
Дата 10.4.2011, 19:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Wisdom @  10.4.2011,  20:27 Найти цитируемый пост)
придумал одно из решений. Первичные ключи установить как BIGINT и рэндомно генерировать ключи для каждой новой записи. При размерности в 20 порядков, думаю, совпадений ну будет. Только пока не знаю, каким образом задать автогенерацию рэндомных значений для новых записей.

Просто установи начальное значение счётчика для одной из баз = 10^10.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 10.4.2011, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Как вы предполагаете распоряжаться объединенной базой?

Добавлено через 3 минуты и 26 секунд
Цитата(Akina @  10.4.2011,  19:46 Найти цитируемый пост)
Просто установи начальное значение счётчика для одной из баз = 10^10.

 smile

Мне больше нравится иметь индекс базы в младшем разряде. Т.е. еденцу инкремента делаем 1e3, а нумерацию начинаем с 1...999. Припоминаю что у такого подхода, помимо пущего удобства, еще и профит какойто был.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 11.4.2011, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Zloxa @  10.4.2011,  20:47 Найти цитируемый пост)
Мне больше нравится иметь индекс базы в младшем разряде.

Хорошо, когда выполняется именно объединение. А вот когда выполняется периодическое выделение кусков в самостоятельные блоки - наоборот, плохо. Впрочем, случай редкий. Чаще встречается его вариация в виде выделения блоков индекса в связи с исчерпанием предыдущего. По сути аналогично раздаче пачек номерных бланков.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Wisdom
Дата 13.4.2011, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Спасибо за информацию, думал о таком варианте.. но не знаю,  насколько это технически хорошее решение.
А что насчёт рэндомной генерации ключей ? Жизнеспособный вариант ?
PM MAIL   Вверх
DarkProg
Дата 13.4.2011, 18:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Цитата(Wisdom @  13.4.2011,  18:47 Найти цитируемый пост)
А что насчёт рэндомной генерации ключей ? Жизнеспособный вариант ? 

Жить то будет, но до первого повтора, а там ошибка и что-нить весёленькое.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.