|
|
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
Определился с тем что все ключи в в базе использовать as GUID - всетаки плюсов больше чем минусов, а с учетом роста объемов накопителей и производительности систем - эти минусы становятся не очень существенными Но у меня сразу возникает вопрос: - в силу того что GUID хаотичен (в случае с клиентом тяжело добиться тойже последовательности что и на сервере) - как делать выборку записей в порядке поступления? сразу вижу решение влоб - колонка автогенерируемая числовая индексируемая но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле! Кто как решил для себя проблему? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 03:32 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 03:37 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
ChA http://en.wikipedia.org/wiki/Globally_unique_identifier#Sequential_Algorithms имеется в виду что нельзя сгенерировать последовательность на клиенте и не получить исключение уникальности на сервере, да и последовательность имеется в виду как продолжение номеров на сервере а не гипотетическая какаянибудь последовательность - иначе от такой последовательности толку мало - она попадет куда не попади, а мне нужен порядок вставки получить! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 04:17 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
sp но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле! spс учетом роста объемов накопителей и производительности систем - эти минусы становятся не очень существенными Сами себе противоречите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 08:08 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
spкак делать выборку записей в порядке поступления?само собой напрашивается поле даты/времени (возможно найдется и из предметной области).. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 10:56 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
>но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле! То ли 16 байт отдать, то ли 20? В этом проблема (в 20% объёма)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 14:39 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
spсразу вижу решение влоб - колонка автогенерируемая числовая индексируемаяЕсли система распределённая, то вы не сможете никаким способом обеспечить общую последовательность. Если не распределённая, то зачем вам GUID (раз уж нужна последовательность)? Используйте инврементное число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 14:53 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
sp, guid - это просто идентификатор объекта, не более. А уж как его упорядочить, совсем другой вопрос. Просто используй для этоого другие поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 19:48 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
alexeyvg Если не распределённая, то зачем вам GUID (раз уж нужна последовательность)? Используйте инврементное число. iscrafmsp, guid - это просто идентификатор объекта, не более. А уж как его упорядочить, совсем другой вопрос. Просто используй для этоого другие поля Человеку у которого в рукахмолоток все вокруг кажется гвоздями :) GUID не просто просто идентификатор объекта - он отличный от обычных - его можно генерировать на клиенте - он может выступать естественным ключем реализации наследования аля ООП в БД - он нескончаем и это то что можно сразу ответить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 10:09 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
spGUID не просто просто идентификатор объекта - он отличный от обычных - его можно генерировать на клиенте - он может выступать естественным ключем реализации наследования аля ООП в БД - он нескончаем от этого он не перестает быть идентификатором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 10:29 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
в случае mssql - timestamp, если SEQUENTIAL GUID на стороне сервера не подходит. Кроме того, кроме GUID-PK, все равно нужен timestamp для реализации механизма оптимистической блокировки (Version Field). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 12:35 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
spЧеловеку у которого в рукахмолоток все вокруг кажется гвоздями :) GUID не просто просто идентификатор объекта - он отличный от обычных - его можно генерировать на клиенте - он может выступать естественным ключем реализации наследования аля ООП в БД - он нескончаем и это то что можно сразу ответить...То-есть единственный ответ - его легче генерить на клиенте? Да, такое есть. Ну так я предложил один из вариантов. Если система не распределённая, а гуид использовать ну очень хочется, сделайте, как и говорили, второй ключ из инкрементного числа. Хотя время лучьше, потому как вам может захотеться обязательно понадобится вставить записи в середину. К тому-же время обычно тоже нужно само по себе, да и естественнее его использовать для упорядочивания.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 13:01 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
Роман Дынникв случае mssql - timestamp, если SEQUENTIAL GUID на стороне сервера не подходит. Кроме того, кроме GUID-PK, все равно нужен timestamp для реализации механизма оптимистической блокировки (Version Field). дык timestamp - этож не дата - этож ... timestamp is the synonym for the rowversion data type and is subject to the behavior of data type synonyms отображение порядка вставки она не обеспечивает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 13:35 |
|
||
|
GUID в качестве ключа (доп вопросы)
|
|||
|---|---|---|---|
|
#18+
spдык timestamp - этож не дата - этож ... timestamp is the synonym for the rowversion data type and is subject to the behavior of data type synonyms отображение порядка вставки она не обеспечивает! обеспечивает, если не происходит дальнейших обновлений записи. timestamp последователен. The rowversion data type is just an incrementing number. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 12:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36866746&tid=1542512]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 480ms |

| 0 / 0 |
