![]() |
|
Модераторы: skyboy |
![]()
|
|
| Wisdom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Здравствуйте.
Проблема такая. Есть локальная БД на одной машине и есть БД (аналогичная по структуре) на другой машине. БД в виде полных .sql-дампов. Вопрос: как можно объединить эти базы данных? Проблема в том, что в таблицах могут совпадать ключи. Т.е. в первой БД будут 5 записей с Id = 1...5 и во второй. Есть какие-либо способы решения данной ситуации? Скажу, что первичные ключи являются автоинкрементными. Возможно, если бы они изначально были рэндомно генерируемыми, то проблема бы отпала. Но имеем то, что имеем.. Заранее благодарю за любую полезную информацию. |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Ну, возьмите создайте новую БД и в них укажите, свой новый ID, а старые просто как вторичное поле и вот оно счастье(или вообще убейте старые ID, если они вам более не нужны)
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| Wisdom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Обе БД живые, т.е. в них непрерывно вносятся новые данные. В определённый момент времени берётся дамп обеих БД. Нужно синхронизировать данные в них. Впрочем, уже придумал одно из решений. Первичные ключи установить как BIGINT и рэндомно генерировать ключи для каждой новой записи. При размерности в 20 порядков, думаю, совпадений ну будет. Только пока не знаю, каким образом задать автогенерацию рэндомных значений для новых записей. Писать триггеры на каждую таблицу не очень хочется... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Просто установи начальное значение счётчика для одной из баз = 10^10. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Как вы предполагаете распоряжаться объединенной базой?
Добавлено через 3 минуты и 26 секунд
Мне больше нравится иметь индекс базы в младшем разряде. Т.е. еденцу инкремента делаем 1e3, а нумерацию начинаем с 1...999. Припоминаю что у такого подхода, помимо пущего удобства, еще и профит какойто был. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Хорошо, когда выполняется именно объединение. А вот когда выполняется периодическое выделение кусков в самостоятельные блоки - наоборот, плохо. Впрочем, случай редкий. Чаще встречается его вариация в виде выделения блоков индекса в связи с исчерпанием предыдущего. По сути аналогично раздаче пачек номерных бланков. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Wisdom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Спасибо за информацию, думал о таком варианте.. но не знаю, насколько это технически хорошее решение.
А что насчёт рэндомной генерации ключей ? Жизнеспособный вариант ? |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Жить то будет, но до первого повтора, а там ошибка и что-нить весёленькое. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |