On Mon, 25 Dec 2006 14:46:51 +0300, Kovalenko Dmitry <[EMAIL PROTECTED]> wrote:
> Люди, напишите еще что-нибудь.

Только для тебя ;) Вставлю свою 1 копейку критики.

   Andrei, разделение на диапазоны - плохая идея, не только из-за тонкостей 
реализации.
Ты жёстко закладываешься на "если филиалов не очень много". Если они уже есть, 
то их будет больше.
А если один "разрастётся" и вылезет за свой диапазон?

   ArtGal, PK из двух полей работает, всё верно, но это всё равно не лучшая 
идея. Попробуй мне объяснить необходимость лишнем сегменте индекса?
Да, в "отчётной" базе, где всё свалено, там даст небольшой прирост в 
"мультибазовых" запросах. Но так в ней можно свой индекс сделать, как раз для 
этих задач, и совсем не PK.
Включать сюда ещё и ссылочную целостность вообще не ясно зачем. Целостность она 
хороша внутри замкнутой структуры, а именно одной базы. Никакой твой FK не 
ссылается на объект другой базы, разве нет? А если нет, то зачем так делаешь?

   Tonal, не догнал, чем тебе помогло отдельное поле REPL_ID. Всё равно решение 
задачи уникальных ID не описано. И что мешает вместо REPL_ID использовать 
собственно PK ID из этой же таблицы, формируя её по тем же принципам, что и 
REPL_ID?

   Свой решение вижу так - PK, как и ID - одно поле, уникальное внутри одной 
базы/таблицы, FK ссылается на это "однополенное" ( :D само так написалось ) ID, 
храня целостность внутри базы. Для репликации есть дополнительное поле, а 
именно BaseID, но оно в PK не входит. Индексировано оно только в "слитой" базе.

-- 
Сергей Смирнов.

Ответить