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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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


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