|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
Стоит следующая задача, есть сервер с MSSQL 2000, не столь важно. И несколько клиентов локальных на ACCESS(теоритически их может быть сколько угодно). Данные с локальных клиентов собираются на сервере. Понятно записи в таблицах идетифицируются по какому-то id(целое, identity). причём ессно на клиенте и на сервере эти id различаются. Таблицы между собой связаны, стоит задача как бы сделать так чтобы при копировании данных на сервер эти отношения между записями не потерялись. Конечно можно сделать тупо в родительскую таблицу запись добавил, получил id записи, после чего использую этот id при добавлении в дочернии таблицы. Может быть есть способ поэлегантнее? и попроще? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2002, 18:01 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
Твоя задача легко решится после того, как ты определишь, что является естественным (натуральным) ключем в таблицах. Суррогатные ключи (Id, etc) - чисто для внутреннего применения, но они не годятся для связи базы с внешними источниками. В этой эпархии рулит естественные ключи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2002, 09:52 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
а что это за естественные ключи? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2002, 11:01 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
В справочнике городов России это будет, например, название города, а справочнике городов мира это будет композитный ключ из названия страны и названия города. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2002, 11:23 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
а потом на двух удаленных экземплярах введут по одной записи с одним натуральным ключом и вся красота полетит к чертовой матери. все субд для репликаций используют суррогатные ключи (функция от id записи и от id экземпляра базы данных) или центральная раздают интервалы первичных ключей по удаленным экземплярам ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2002, 07:41 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
Хотелось бы конечно хотя бы кратко какие таблицы есть, структуру. Но в принципе можно и вот так: добавить на сервере доп. поля - для ID из клиента и имя самого клиента. Потом спокойненько все закачиваешь сразу, а уж потом по этим полям промапливаешь связи с серверными ID таблиц. Так будет надежнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2002, 09:42 |
|
"Синхронизация" баз
|
|||
---|---|---|---|
#18+
В таких случаях лучше всего использовать GUID, в случае необходимости можно ввести поле, информация в котором будет указывать откуда пришла запись. Дополнительно надо продумать механизм работы с общими справочниками. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2002, 12:51 |
|
|
start [/forum/topic.php?fid=17&fpage=135&tid=1354410]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
384ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 492ms |
0 / 0 |