Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Единый справочник в распределенной базе ( ASA8, SQLRemote )
|
|||
|---|---|---|---|
|
#18+
Есть распределенная БД : одна консолидированная БД – данные туда добавляются только посредством репликации, и множество ( до 50 ) удаленных БД – данные туда вносятся и через ПО и посредством репликации. Репликация двунаправленная. В базе требуется создать таблицу-справочник, единую для всех баз. Структура таблицы ( упрощенная) : PrimKey – integer Name - char(128) Значение первичного ключа ( PrimKey ) в каждой базе генерируется автоматически и по-определению не может дублироваться в разных базах. Значение поля ( Name ) должно быть уникальным в таблице, но теоретически возможна ситуация когда в разных удаленных базах условно-одновременно добавят одинаковые значения данного поля. Как разрулить данную ситуацию ? Теоретически представляется следующий механизм : Если удаленные базы А. и Б. одновременно добавили записи с одинаковым значением поля Name. Репликация от базы А. в консолидированную базу ( КБД ) пройдет успешно. Но следующая репликация от базы Б. должна порождать ошибку и возвращать в базу Б. реплику, изменяющую первичный ключ у строки добавленной в базу Б. на значение , равное первичному ключу строки с таким же значением поля Name в консолидированной базе данных. Но как этот механизм реализовать ? Постарался в начале описать более общую задачу, возможно, есть другие решения проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 10:35 |
|
||
|
Единый справочник в распределенной базе ( ASA8, SQLRemote )
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 11:01 |
|
||
|
Единый справочник в распределенной базе ( ASA8, SQLRemote )
|
|||
|---|---|---|---|
|
#18+
А справочник-то распределенный? (т.е. записи, созданные в базе А должны уходить в базу Б или же они реплицируются только в КБД?) Если справочник распределенный (все "видят" друг друга) то Но следующая репликация от базы Б. должна порождать ошибку и возвращать в базу Б. реплику, изменяющую первичный ключ у строки добавленной в базу Б. на значение , равное первичному ключу строки с таким же значением поля работать не будет (нарушение целостности по Primary key) ... да и вообще - старайтесь не делять updat'ов по Primary key, тем более в распределенной БД. Для решения проблемы можно воспользоваться триггерами - при вставке записи проверяешь ее на дубликат - и далее соответствующие операции P.S. Можно также event'ами воспользоваться - вызывать периодически процедуру слияния задублированных записей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33742439&tid=2012851]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 371ms |

| 0 / 0 |
