|
|
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
guest_20040621> это тяжело опровергнуть Вот и получается, что для гетерогенных систем - либо собственный генератор, либо диапазоны. Гадать, что в очередной раз озарило Билли и каких граблей ждать в каждом конкретном случае... а нафига? Стрессов и без того достаточно. я на MS SQL использовал их GUID вроде за 4 года пока проблем не было. Видимо за это время озарений не было, тьфу-тьфу... :) Диапазоны можно, но требуются дополнительные танцы с бубнами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 21:53 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
> за 4 года пока проблем не было Стоит поплевать через плечо. > Диапазоны можно, но требуются дополнительные танцы с бубнами. Да, работы минут на десять. ;) Кстати, куча бесплатных вкусняшек. Например, такая: поскольку идентификатор хоста так или иначе присутствует в любом идентификаторе, легко разруливаются права доступа для результирующей базы данных. Или такая: одна база данных может обслуживать несколько виртуальных хостов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 22:23 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
iscrafmне путаю, просто спрашиваю. Вот к примеру возьмем не самый сложный случай, 5 БД, СУБД разные, бизнес-процесс "проходит" через эти БД, взаимодействие в режиме он-лайн и т.п. Вы забыли самое важное: эти БД под Вашим контролем или нет? Вы можете потребовать, чтобы в них использовался некий общий алгоритм генерации (например, UUID)? Вы уверены, что это требование удастся поддержать в будущем, в частности, при расширении набора БД? Лично я по опыту работы с DWH вывел следующее: чужие ID не должны проникать за пределы входного шлюза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 22:31 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
небольшой фрагмент из системы документооборота (картинка)... документы "рождаются" на трех хостах (назовем так), хранятся в разных таблицах T1...Tn, регистрируются на 4-м хосте и передаются для дополнительной обработки на 5-й хост, где обрастают дополнительными данными (визами, замечаниями,распоряжениями и т.п.). Далее идет обратная связь. Имея гарантированный GUID, уникальный для каждой таблицы, каждого хоста, не дублирующийся естественно в общем хранилище и в 5-м хосте, получаем простейшую в реализации обратку. Весь довесок к документам просто передается на H1...4 b ,и без дополнительных действий гарантированно привязывается к родителям. Конечно можно решить задачу и составными ключами, не отрицаю, но ... путем дополнительных телодвижений. Я это к тому, что не вижу проблем в использовании GUID. Может кто подскажет, что считается проблемой, с удовольствием бы подискутировал на эту тему. Только не по поводу банальностей, типа размера ключа, который якобы где-то как-то приводит к тормозам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 23:46 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
iscrafmКонечно можно решить задачу и составными ключами, не отрицаю, но ... путем дополнительных телодвижений. Не стоит предлагать заведомо плохие варианты так, словно они - единственная альтернатива. Это.. некрасиво. Описанная задача решается стандартнейше - Код: plaintext iscrafmЯ это к тому, что не вижу проблем в использовании GUID. Если о принципиальных проблемах - с этим, например, к guest-у. Лично я никогда над ними не размышлял по простой причине: guid-ы просто менее удобны. В тех системах, с которыми я имел дело, они не дают никаких преимуществ, исключительно - громоздкая и неудобная в обращении хрень. Когда они дают преимущество - могу назвать пожалуй что единственный случай: неконтролируемое размножение хостов. Скажем, если вы выкладываете дистрибутив, который любой желающий скачает, поставит себе и начнет слать сообщения в общую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:02 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
> Я это к тому, что не вижу проблем в использовании GUID Если для пяти хостов с одинаковой (с точностью до билда) СУБД и одинаковым (с точностью до билда) сервером приложений все шоколадно, не факт, что все будет так же шоколадно для пяти тысяч хостов с произвольными серверами приложений и двумя десятками СУБД. Логических ошибок в приведенной схеме нет. В данном случае особенности реализации некоторых компонент не позволяют рекомендовать такую схему как универсальную. Для однородных сред - сколько угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:07 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
softwarerОписанная задача решается стандартнейше - Код: plaintext означает ли это... когда я "солью" документы в одну таблицу БД из других БД, то предложенный вариант обеспечит уникальность.. с учетом, что хосты например на Firebird, центральная БД ORACLE, а H5 на картинке - MS SQL? Наверняка за этим стоит еще дополнительный ПК в центральной, дополнительные поля для связи с хостами, которые будут размножаться по мере расширения системы вглубь-вширь... не так? softwarerЛично я никогда над ними не размышлял по простой причине: guid-ы просто менее удобны. В тех системах, с которыми я имел дело, они не дают никаких преимуществ, исключительно - громоздкая и неудобная в обращении хрень. хм.. не заметил. Я наоборот не замечал недостатков. Да и громоздкости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:13 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
Я объясняю неприязнь ГУИДАМ только одним единственным предубеждением - желанием сэкономить, доставшимся как рудимент от первых трехэтажных ЭВМ - современным программистам. Проблема 2000 не пошла на пользу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:17 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
guest_20040621Если для пяти хостов с одинаковой (с точностью до билда) СУБД и одинаковым (с точностью до билда) сервером приложений все шоколадно, не факт, что все будет так же шоколадно для пяти тысяч хостов с произвольными серверами приложений и двумя десятками СУБД. СУБД разные... правда алгоритм формирования GUID конечно одинаковый. guest_20040621В данном случае особенности реализации некоторых компонент не позволяют рекомендовать такую схему как универсальную. Для однородных сред - сколько угодно. как универсальную - нет конечно. Это пример использования GUID облегчающий реализацию оговоренной функциональности. Но в каждом конкретном случае всегда нужно выбирать способ, как этот случай сделать менее гемморойным. Мне просто непонятны эти битвы между "инкрементальщиками" и "гуидовцами" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:23 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
> битвы между "инкрементальщиками" и "гуидовцами" Если человек понимает, что он делает и почему делает именно так, знает об ограничениях применения - никаких битв. А просто замена числовой последовательности символьной только потому, что это модно - глупость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:30 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
Гость. А Вас по ночам не мучают кошмары? long исчерпывается и что дальше? Где-то я читал что для реально работающих приложений этого более чем достаточно, но не уверен. Не хватает же размерности стирлинговых, доубле или децимал/нумерик для построения банковских систем. (А иногда для начисления зарплаты диретора банка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:39 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
iscrafmозначает ли это... когда я "солью" документы в одну таблицу БД из других БД, то предложенный вариант обеспечит уникальность.. Безусловно. iscrafmс учетом, что хосты например на Firebird, центральная БД ORACLE, а H5 на картинке - MS SQL? А в чем проблема? Разве что в MSSQL, наверное, потребуется написать десяток строк кода - не берусь судить. iscrafmНаверняка за этим стоит еще дополнительный ПК в центральной, дополнительные поля для связи с хостами, которые будут размножаться по мере расширения системы вглубь-вширь... не так? Валер, мне неинтересно беседовать со странными фантазиями. iscrafmхм.. не заметил. Я наоборот не замечал недостатков. Да и громоздкости. Попробуйте, например, сказать человеку по телефону, на какую именно запись стоит обратить внимание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 00:46 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
А что, в приведенном примере составной ПК использовать слабо? Первое поле ID хоста, второе номер документа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 13:21 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
Не понимаю...А что, в приведенном примере составной ПК использовать слабо? Первое поле ID хоста, второе номер документа? +1 В таком случае вот эту работу iscrafmВесь довесок к документам просто передается на H1...4 b ,и без дополнительных действий гарантированно привязывается к родителям. можно будет выполнить еще более эффективно чем с GUID (не содержащем информацию о хосте). Imho. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 16:09 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
LR...более эффективно чем с GUID (не содержащем информацию о хосте) ...более эффективно чем с GUID (не содержащем информацию о хосте и таблице ) Т.е., другими словами, очевидной альтернативой GUIDу всегда будет более "умный" идентификатор (дающий кроме "глобальной" уникальности еще и "адрес") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 16:21 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
softwarerчужие ID не должны проникать за пределы входного шлюза. первый постулат DWH :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 16:39 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
поддержите акцию По доллару за GUID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 16:55 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
Валера, от вас я не ожидал ссылок на надписи на заборе. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 21:30 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
iscrafm поддержите акцию По доллару за GUID. Остроумно, посмеялся, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 23:35 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
guest_20040621Валера, от вас я не ожидал ссылок на надписи на заборе. :( да ладно. я тоже иногда не прочь поязвить и поиграть в театре абсурда, хотябы зрителем. не со зла конечно, бывает скучно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2007, 00:20 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
Первичный ключ пишет: > Собственно юзал бигинт автоинкремент(я как бы не сторонник номер > паспорта в качестве ПК юзать, поэтому никогда не выделяю потенциальные > ключи.), Первичный ключ в общем случае не выбирается. Там всегда частные случаи. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2007, 15:37 |
|
||
|
Как выбрать Первичный ключ в общем случае
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > То есть в комбинации пустой головы и кривых рук виноват автоинкремент, я > все правильно понял? Там еще и кривые руки майэскуэлевцев, в добавок. У них они блокируются ... и т.п. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2007, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34996174&tid=1544143]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 467ms |

| 0 / 0 |
