Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / GUID в качестве ключа (доп вопросы) / 14 сообщений из 14, страница 1 из 1
26.09.2010, 03:32
    #36866502
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
Определился с тем что все ключи в в базе использовать as GUID - всетаки плюсов больше чем минусов, а с учетом роста объемов накопителей и производительности систем - эти минусы становятся не очень существенными

Но у меня сразу возникает вопрос:
- в силу того что GUID хаотичен (в случае с клиентом тяжело добиться тойже последовательности что и на сервере) - как делать выборку записей в порядке поступления?

сразу вижу решение влоб - колонка автогенерируемая числовая индексируемая

но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле!

Кто как решил для себя проблему?
Спасибо
...
Рейтинг: 0 / 0
26.09.2010, 03:37
    #36866503
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
...
Рейтинг: 0 / 0
26.09.2010, 04:17
    #36866505
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
ChA http://en.wikipedia.org/wiki/Globally_unique_identifier#Sequential_Algorithms

имеется в виду что нельзя сгенерировать последовательность на клиенте и не получить исключение уникальности на сервере, да и последовательность имеется в виду как продолжение номеров на сервере а не гипотетическая какаянибудь последовательность - иначе от такой последовательности толку мало - она попадет куда не попади, а мне нужен порядок вставки получить!
...
Рейтинг: 0 / 0
26.09.2010, 08:08
    #36866513
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
sp
но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле!


spс учетом роста объемов накопителей и производительности систем - эти минусы становятся не очень существенными


Сами себе противоречите
...
Рейтинг: 0 / 0
26.09.2010, 10:56
    #36866554
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
spкак делать выборку записей в порядке поступления?само собой напрашивается поле даты/времени (возможно найдется и из предметной области)..
...
Рейтинг: 0 / 0
26.09.2010, 14:39
    #36866724
Осака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
>но тут проблема кроме того что сам GUID великоват тут еще плус еще одно вспомогательное поле!
То ли 16 байт отдать, то ли 20? В этом проблема (в 20% объёма)?
...
Рейтинг: 0 / 0
26.09.2010, 14:53
    #36866746
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
spсразу вижу решение влоб - колонка автогенерируемая числовая индексируемаяЕсли система распределённая, то вы не сможете никаким способом обеспечить общую последовательность.

Если не распределённая, то зачем вам GUID (раз уж нужна последовательность)? Используйте инврементное число.
...
Рейтинг: 0 / 0
26.09.2010, 19:48
    #36866979
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
sp,
guid - это просто идентификатор объекта, не более. А уж как его упорядочить, совсем другой вопрос. Просто используй для этоого другие поля
...
Рейтинг: 0 / 0
27.09.2010, 10:09
    #36867401
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
alexeyvg
Если не распределённая, то зачем вам GUID (раз уж нужна последовательность)? Используйте инврементное число.

iscrafmsp,
guid - это просто идентификатор объекта, не более. А уж как его упорядочить, совсем другой вопрос. Просто используй для этоого другие поля

Человеку у которого в рукахмолоток все вокруг кажется гвоздями :)
GUID не просто просто идентификатор объекта - он отличный от обычных
- его можно генерировать на клиенте
- он может выступать естественным ключем реализации наследования аля ООП в БД
- он нескончаем

и это то что можно сразу ответить...
...
Рейтинг: 0 / 0
27.09.2010, 10:29
    #36867438
iscrafm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
spGUID не просто просто идентификатор объекта - он отличный от обычных
- его можно генерировать на клиенте
- он может выступать естественным ключем реализации наследования аля ООП в БД
- он нескончаем

от этого он не перестает быть идентификатором.
...
Рейтинг: 0 / 0
27.09.2010, 12:35
    #36867741
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
в случае mssql - timestamp, если SEQUENTIAL GUID на стороне сервера не подходит.
Кроме того, кроме GUID-PK, все равно нужен timestamp для реализации механизма оптимистической блокировки (Version Field).
...
Рейтинг: 0 / 0
27.09.2010, 13:01
    #36867823
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
spЧеловеку у которого в рукахмолоток все вокруг кажется гвоздями :)
GUID не просто просто идентификатор объекта - он отличный от обычных
- его можно генерировать на клиенте
- он может выступать естественным ключем реализации наследования аля ООП в БД
- он нескончаем

и это то что можно сразу ответить...То-есть единственный ответ - его легче генерить на клиенте?

Да, такое есть.
Ну так я предложил один из вариантов.

Если система не распределённая, а гуид использовать ну очень хочется, сделайте, как и говорили, второй ключ из инкрементного числа.
Хотя время лучьше, потому как вам может захотеться обязательно понадобится вставить записи в середину.

К тому-же время обычно тоже нужно само по себе, да и естественнее его использовать для упорядочивания..
...
Рейтинг: 0 / 0
28.09.2010, 13:35
    #36869850
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
Роман Дынникв случае 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

отображение порядка вставки она не обеспечивает!
...
Рейтинг: 0 / 0
05.10.2010, 12:10
    #36881992
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID в качестве ключа (доп вопросы)
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.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / GUID в качестве ключа (доп вопросы) / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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