powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужен ли server_id?
6 сообщений из 6, страница 1 из 1
Нужен ли server_id?
    #32039816
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник спор с коллегами по поводу таблицы.
Хотим с нуля создать базу (опираясь на опыт предудущего проекта). Так вот, у нас имеется несколько филиалов, данные ходят по репликации. В старой системе механихм репликации был самопальный (где через архив, где заливали данные в одну репликационную таблицу, реплицировали ее средствами MS SQL, и затем хр. пырой разкладывали по нужным таблицам). База - псевдообъектная. В таблице OBJECTS записи имели класстерный ключ object_id + class_id,где object_id - identity. Чтобы добится уникальности "объектов" в масштабе всех филиалов была добавлена вспомогательная таблица REPLOBJECTS, в которой кажодму OID-у присваивался GUID (object_id int, gu_id varchar(40)).
Возник вопрос, а не внести ли в таблицу OBJECTS поле server_id, который позволит добится уникальности объекта (для каждого филиала - свое значение server_id).
Интересно, как решаются подобные проблемы?
...
Рейтинг: 0 / 0
Нужен ли server_id?
    #32039827
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО подобные проблемы решаются применением в качестве ПК (идентификатора) поля типа uniqueidentifier, где по дефолту стоит значение NEWID.

*** BOL SQL 2000 ***
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
B. Use NEWID in a CREATE TABLE statement
This example creates cust table with a uniqueidentifier data type, and uses NEWID to fill the table with a default value. In assigning the default value of NEWID(), each new and existing row has a unique value for the cust_id column. 

 -- Creating a table using NEWID for uniqueidentifier data type. 
 
CREATE TABLE cust
(
 cust_id uniqueidentifier NOT NULL
   DEFAULT newid(),
 company varchar( 30 ) NOT NULL,
 contact_name varchar( 60 ) NOT NULL, 
 address varchar( 30 ) NOT NULL, 
 city varchar( 30 ) NOT NULL,
 state_province varchar( 10 ) NULL,
 postal_code varchar( 10 ) NOT NULL, 
 country varchar( 20 ) NOT NULL, 
 telephone varchar( 15 ) NOT NULL,
 fax varchar( 15 ) NULL
)
GO

...
Рейтинг: 0 / 0
Нужен ли server_id?
    #32039843
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А производительность (скорость поиска по ключу) в больших таблицах (> 10 000 000 записей)
...
Рейтинг: 0 / 0
Нужен ли server_id?
    #32039880
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уникальный идентификатор хранится в бинарном виде, т.е. не зависит от локализации. Длина ключа постоянная, уникальность значений 99.9999999999999 %.

Какие могут быть проблемы?

ЗЫ Кстати, в BOL 2000 в статье о репликациях именно UI приводится в качестве рекомендуемого ключа, т.к. уникальность значения поддерживается не на уровне таблицы или БД, а вообще в мире!
...
Рейтинг: 0 / 0
Нужен ли server_id?
    #32039936
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!!
...
Рейтинг: 0 / 0
Нужен ли server_id?
    #32039939
Фотография MarchCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полностью поддерживаю Jimmy !!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужен ли server_id?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]