|
|
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
Есть одинаковые по структуре базы: База1 (офис), База2 (магазин 1), База3 (магазин 2). В База3 и База2 забиваются приходы расходы, а в База1 Приходы-Расходы и Платежи по всем базам. Тоесть создают Платеж на основании документов полученых из База2-3, и потом синхронизируются. MySQL, INNODB Необходимо организовать двухсторонний обмен между базами. В голову ничего не лезет кроме как использование уникального идентификатора. tbl_doc `doc_id` INT AUTO_INCREMENT NOT NULL, -- локальный ключ `doc_uuid` BINARY(16) -- глобальный ключ `doc_type` INT NOT NULL COMMENT 'тип документа', `doc_date` DATETIME NOT NULL, `doc_number` INT ........ PRIMARY KEY (`doc_id`), UNIQUE INDEX doc_uuid (doc_uuid) tdl_docrow `docr_id` INT AUTO_INCREMENT NOT NULL, -- локальный ключ `docr_uuid` BINARY(16) -- ключ записи спецификации документа `docr_docuuid` BINARY(16) -- ссылка-ключ на документ `docr_produuid` BINARY(16) -- ссылка на товар ........ PRIMARY KEY (`docr_id`) Локальный ключ используется для работы непосредственно в локальном приложении Глобальный- для связи сущностей и при передаче из одной базы в другую. Верном ли направлении двигаюсь? Как можно еще обеспечить двухсторонний обмен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 00:33 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevЛокальный ключ используется для работы непосредственно в локальном приложении Глобальный- для связи сущностей и при передаче из одной базы в другую. А что мешает использовать в локальном приложении глобальный ключ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 00:52 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevНеобходимо организовать двухсторонний обмен между базами почитайте про репликацию. RulonOboevВ голову ничего не лезет кроме как использование уникального идентификатора. Репликация это не только и не столько идентификаторы, но и протокол и правила разрешения конфликтов. Проще всего (в первую очередь для людей ибо запрограммировать можно все что угодно), будет разделить зоны ответственности, то бишь организовать однонаправленную репликацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 01:41 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
как насчет VPN и одну базу пользовать? дешево и практично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 09:38 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov : 1) текущее приложение в качестве идентификатора использует INT. И исходников приложения нет. Поэтому как выход из приложения передаем INT а уже sql через функции линкует его с BINARY(16). 2) вы предлагаете совсем отказаться от INT как идентификатора? Как это отразиться на производительности и индексами в базе? koJIo6ok: В магазинах нет интернета. Рассматриваем вариант 3G, но это тоже не выход. SERG1257: Про репликацию понятно, почитаю. Но все же, вышеприведенный вариант с UUID рабочий? Базы должны содержать все изменения других баз. Какие есть проверенный схемы (кроме репликации) для двустороннего обмена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 11:35 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboev, я и не говорил про интернет, если есть гор телефоны, и к линии нет вопросов, магазины\точки стационарные то vpn неплохой вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 12:48 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
SERG1257: Репликация отпадает - не вижу как она поможет в нашем случает. Суть в том что все базы являются "мастером", просто на База2 и База3 есть ограничения по управлению некоторыми документами. И ессно Василий из магазина 2 не может просто так удалить документы Петрова с магазина 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 18:48 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevСуть в том что все базы являются "мастером" И что? Ты никогда не слышал о multimaster-репликации? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 19:55 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov: нет :) Быстрым поиском нашел на Хабре http://habrahabr.ru/blogs/personal/87394/ о мултимастерах. Итого: Вариант 1: на UUID (описанный выше); Вариант 2: Multi-Master репликация - полностью отказаться от UUID - в таблицах каждой базы определить auto_increment поля согласно схеме: * Установим auto_increment_increment в N на каждом мастере. * На каждом из N мастеров ставим разные значения auto_increment_offset, используя 1, 2,…, N. Еще есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 21:02 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevЕще есть варианты? Коллекцию собираешь? Третьим вариантом обычно идёт составной первичный ключ, включающий номер филиала, породившей запись. Но раз у тебя есть прога без исходников, работающая только с ключом из одного целого поля, то вариант 2 - единственное твоё решение. Всё остальное не подойдёт. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 21:45 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevКакие есть проверенный схемы (кроме репликации) для двустороннего обмена? Двусторонний обмен это репликация и есть. Оно может быть (частично) реализовано на уровне СУБД или полностью вручную. Когда я говорил почитать про репликацию я имел ввиду просмотреть схемы репликации (репликация слиянием, логом) просмотреть возможные конфликты репликации (а они будут) и способы их разрешения. Способ генерации неизменного ID это только первый этап. Следующий - определение хозяина данных, спроецировать это на таблицы и записи. Дальше определить бизнес операции соответствующие своим данным и определение административные запретов, дальше что делать, если несмотря на административный запрет, данные все же появились - к каким это может привести последствиям. Чем проще, ограниченней, тупее будет схема тем меньше неприятностей в процессе эксплуатации. В любом случае это постоянный источник головной боли, во время сникернета я эту чашу до дна испил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 23:35 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov: SERG1257 : выбрать такой, чтобы в дальнейшем существенно не менять схему. Под репликацией я подразумеваю "репликацию средствами СУБД", напрямую сервер-сервер. Вариант 2 на автоинкерментах имеет один ньюанс: максимальное количество серверов - 10 (0-9). Это не критично, но все же надо иметь ввиду. Разбивка ИДов на интервалы для каждого сервера не приемлема. Локальный ID хоть и назван локальным, но в амках одной базы он уникальный (сквозной по таблицам). С UUID (GUID) такого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 15:35 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
С UUID (GUID) такого нет - нет предела по количеству серверов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 15:36 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevРазбивка ИДов на интервалы для каждого сервера не приемлема. По мотивам политическим или религиозным? Интервал signed 32 bits integer составляет свыше двух миллиардов. Даже при разбиении на тысячу серверов, на каждый придётся по два миллиона идентификаторов. Ваши пользователи столько набьют за время жизни софта? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 16:50 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
по стратегическим. сама идея выделять диапазон интервалов неприемлема т.к. это полумера, которая дает временное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 18:32 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevПод репликацией я подразумеваю "репликацию средствами СУБД", напрямую сервер-сервер. http://ru.wikipedia.org/wiki/Репликация_(вычислительная_техника) RulonOboevВариант 2 на автоинкерментах имеет один ньюанс: максимальное количество серверов - 10 (0-9)Почему? N не может быть больше 10? Некрасиво? Установите 100 или 1000. Уж больше тысячи магазинов у вас не будет. Походу, у меня сложилось мнение, что вам надо вложится в хорошие каналы. Это точно будет надежнее, проще и возможно не настолько дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 18:36 |
|
||
|
Офис и два удаленных магазина
|
|||
|---|---|---|---|
|
#18+
RulonOboevсама идея выделять диапазон интервалов неприемлема т.к. это полумера, которая дает временное решение. А любое другое решение приведёт к ошибкам в работе приложения, исходников которого у вас нет. Так что можете стратегировать сколько хотите, но выбора у вас нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2011, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37459801&tid=1542005]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 448ms |

| 0 / 0 |
