powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Суроватный ключ для сущности...?
25 сообщений из 43, страница 1 из 2
Суроватный ключ для сущности...?
    #36929034
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый.

Хотелось бы услышать ваши мнения по поводу следующей задачи:
Есть система в которой сущности создаются динамически ( т.е. проетируются в этойже системе)...из атрибутов сущности найти кандидата на первичный ключ не всегда удается. Поэтому принято решение использовать сурогатный ключ. Работаю на СУБД Oracle, поэтому для генерации ключа использую последовательность.....подскажите что лучше для каждой сущности создавать свою последовательность или пользоваться одной (т.е. в системе для ID использовать одну или ряд последовательностей) если кто-то задавался подобным вопросом подскажите как реализовали?
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929120
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42,

Если связи будут реализованы ТОЛЬКО через суррогатный ключ, то все окончиться плачевно (если система будет сильносвязной).
Суррогат лучше использовать как ровгуид.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929201
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажите о необходимости динамического создания сущностей. Опционально: кто научил вас этой ахинее?
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929240
Осака
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
student42,
откойте для себя наконец Guid же, и займитесь тем за что платит заказчик а не "генерацией используя последовательность".
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929293
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Расскажите о необходимости динамического создания сущностей. Опционально: кто научил вас этой ахинее?
Допустим невозможнсть четкой предварительной классификации сущностей. Например, в Процессе участвуют Вход, Процессор, Выход. Но что это именно зависит от отрасли. Все эти понятия являются точкой входа в множественный классификатор, а сами сущности классифицируемые этими понятиями (как Материал, Обрудование,Специалист..........) появятся в модели позже (кое-что прямо при процессе внедрения).
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929312
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Допустим невозможнсть четкой предварительной классификации сущностей.

Не канает. Модель может быть построена в общем виде, тем более, если речь идет о процессах и классификации. Можно порекомендовать более формально подходить к классификации, - это чуть сложнее, чем обычно принято, но окупает себя. Еще варианты?
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929320
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Допустим невозможнсть четкой предварительной классификации сущностей.

Не канает. Модель может быть построена в общем виде, тем более, если речь идет о процессах и классификации. Можно порекомендовать более формально подходить к классификации, - это чуть сложнее, чем обычно принято, но окупает себя. Еще варианты?
Поговори немного о "не канает", интересно.
Допустим мне абсолютно пофигу как называется процессор - Инструмент, Оснастка, Учитель, Корова и т.д., важно что они являются процессорами процесса. Но я н могу перечислить все возможные типы процессров. Вот модельщик и создает сущности которые ему нужны для описания предмета и классифицирует их как процессор.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929416
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Но я н могу перечислить все возможные типы процессров.

Типы - можете легко. Единственный переход, который потребуется - уникальные особенности типа. И для этого нет необходимости создавать сущности динамически, обычная эволюция структуры данных.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929483
Фотография sobolev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest почти прав. Действительно, большинство сущностей (в т.ч. и процессоры) правильнее продумать сразу и не городить динамический огород. Другими словами, сущности - работа разработчика, а не обслуживающего персонала.
Однако ж, с другой руки, бывают ситуации, когда динамические объекты данных все таки требуются. Например, если система должна предоставлять некоторые классификаторы, каждый из элементов которых должен быть определен юзером.

imho, насчет процессоров Сахават погорячился. Правильно определенный объект процессор нормально так работает без динамических объектов и как станок и как парикмахер и как номер в отеле (хотя у него, Сахавата то бишь) опыта в этом деле больше, чем у меня.

В адрес Осака: guid отнюдь не идеальное решение. Последовательности целочисленных величин по подавляющему большинству критериев намного лучше.

Ну и наконец, по теме топика: для каждой сущности правильнее создавать собственное пространство идентификаторов. Переводя на язык оракл, для каждой - свой sequence.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929487
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sobolevВ адрес Осака: guid отнюдь не идеальное решение. Последовательности целочисленных величин по подавляющему большинству критериев намного лучше.

а можно хотя-бы второе преимущество назвать, плз. Первое понятно, размер.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929503
Фотография sobolev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одного размера вполне достаточно.
Можно попробовать и второе - я не уверен, что время генерации uuid'а является приемлемым во всех случаях.
Возвращаясь к размеру: не забываем про то, что это поле с uuid'ом практически всегда индексируется.
Плюс к тому, когда мы строим в памяти список таких идентификаторов, то время поиска по этому списку может зашкаливать за разумные пределы (я, конечно, говорю о списках размером в десятки тысяч элементов и более).
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929512
Фотография sobolev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsobolevВ адрес Осака: guid отнюдь не идеальное решение. Последовательности целочисленных величин по подавляющему большинству критериев намного лучше.

а можно хотя-бы второе преимущество назвать, плз. Первое понятно, размер.
Еще один: больше времени на отладку уходит (запомнить/записать) uuid - задача не для слабонервных.
Не забываем, что один из сильных аргументов в пользу 1це - быстрая разработка. Так как этот продакт юзает uuid'ы, то из названного преимущества вычитаем упомянутую сложность (надеюсь, она - единственная).
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929524
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sobolevОдного размера вполне достаточно.
Можно попробовать и второе - я не уверен, что время генерации uuid'а является приемлемым во всех случаях.

на вскидку: 100000 записей
3s828ms - guid
3s797ms - int
Или речь идет о системах реального времени?
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929525
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Например, если система должна предоставлять некоторые классификаторы, каждый из элементов
> которых должен быть определен юзером.

Простите, но на мой взгляд это глупость. Никогда, ни при каких обстоятельствах юзеры не должны иметь возможность что-то определять. Задача максимальной сложности для юзера - добавление данных. Причем, под жестким контролем. Правила классификации - вообще говоря, отдельная задача. И я бы не назвал ее тривиальной. Фишка в том, что ее решение предполагает использование по крайней мере фрагментов семантических структур - от словарей до предикат. Вы себе представляете формальные правила классификации?

> для каждой сущности правильнее создавать собственное пространство идентификаторов.

Не обязательно. Смысл плодить последовательности, если они фактически не будут использоваться?
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929573
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> Например, если система должна предоставлять некоторые классификаторы, каждый из элементов
> которых должен быть определен юзером.

Простите, но на мой взгляд это глупость. Никогда, ни при каких обстоятельствах юзеры не должны иметь возможность что-то определять. Задача максимальной сложности для юзера - добавление данных. Причем, под жестким контролем. Правила классификации - вообще говоря, отдельная задача. И я бы не назвал ее тривиальной. Фишка в том, что ее решение предполагает использование по крайней мере фрагментов семантических структур - от словарей до предикат. Вы себе представляете формальные правила классификации?

> для каждой сущности правильнее создавать собственное пространство идентификаторов.

Не обязательно. Смысл плодить последовательности, если они фактически не будут использоваться?

Коллеги спасибо за предоставленные варианты. Очень поучительно. Хочу поддержать guest_20040621...как мне кажет он ближе к истине. Обратно же, это субъективно. Если описать более подробно то система действительно динамическая...причем создаваемые сущности являются физическими сегментами некоторого табличного пространства. Привожу примерную диаграмму системы.....прошу прощения за безобразное исполнение..но думаю смысл будет понятен. Еще раз зачечу...что структура динамическая....и заказчик должен иметьт возможность управлять сущностями...т.е. предметная область не определена рамками.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929579
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
student42, стандартная просьба: пожалуйста, не приводите ваш вариант решения, сформулируйте исходную задачу. Очень сложно догадываться, что именно вам нужно и почему выбрано именно такое решение. Кроме того, если вы написали "объект", расшифруйте, какой нотации соответствует его определение (или, если не соответствует никакой, объясните его физический смысл).

Поясните природу классификатора, совершенно не понятен смысл его связи с КЛАДР (кстати, пока не поздно, уберите прямые связи, ничего, кроме головной боли, от прямого использования внешних классификаторов вы не получите).

На вашей схеме нет собственно сущностей, которые вы собираетесь классифицировать.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929632
Фотография sobolev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsobolevОдного размера вполне достаточно.
Можно попробовать и второе - я не уверен, что время генерации uuid'а является приемлемым во всех случаях.

на вскидку: 100000 записей
3s828ms - guid
3s797ms - int
Или речь идет о системах реального времени?
Спасибо за цифры. К своему стыду я так и не удосужился посчитать. Кстати, вы профилировали чистое процессорное время или просто засекли начало-конец?
Будем считать что я привел тупой аргумент.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929655
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sobolevСпасибо за цифры. К своему стыду я так и не удосужился посчитать. Кстати, вы профилировали чистое процессорное время или просто засекли начало-конец?

я просто взял СУБД, создал в ней 2 таблички: одну с GUID в качестве PK, другую с autoinc. Т.е. это время с учетом построения индекса. Сделал процедуру, которая вставляет в таблички по 100000 записей. Запустил и посмотрел что сказал профайлер о времени отработки. Подобные и эксперименты и реальные замеры, я много раз давно проделывал, когда читал различные блоги, где писАлось, что GUID в качестве PK является убийством для БД. Но как оказывалось в итоге, все эти тексты были просто многократной перепечаткой сказанной однажды кем-то глупости.
А вот преимуществ предостаточно. Правда в распределенных системах и многозвенных, которыми я, в основном, занимаюсь. Я бы сказал , что следование сказанной однажды кем-то глупости ничего кроме множества бессмысленной и ненужной работы не приносит. Захватывающие саги о каки-то диапазонах, префиксах и прочих надуманных на пустом месте алгоритмах просто поражают воображение. Нужно просто решать задачи проще.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929657
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42Если описать более подробно то система действительно динамическая...причем создаваемые сущности являются физическими сегментами некоторого табличного пространства. Привожу примерную диаграмму системы.....
здесь не видно ничего динамического.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929824
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Я бы сказал , что следование сказанной однажды кем-то глупости ничего кроме множества бессмысленной и ненужной работы не приносит.
Ну чисто гуид для связей приносит свои сложности с лукапом.
Смотри,
Квалификация(ИД,Наим,...)
Специальность(ИД,Наим...)
Специалист(Квалификация, Специальность,...)
ФизЛицо(ИД, Наим,...)
Сотрудник(ФилЛицо,.....)
Компетенция сотрудника(Сотрудник, Специалист,...)
....

Сложность лукапа :)все растет и растет, а если можно было использовать миграцию ключей то все бы упрощалось (пришлось ввести)

к ГОСТ20040621,
ну согласись, что вышеперечисленные процессоры ну очень уж отличаются что бы их залить в одну структуру - процессоры
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929832
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классификатор типизирует типы :) (доопределяет семантику с помощью новых свойств = путь от вершины множ классификатора до типа)
А типизация связей производится отдельно (по типу ссылки и ролям связанных типов в связи).
Методы пишутся с учетом этих дженерик вещей.
Эти 3 фундаментальных вещи дают возможность оставить уточнение списка и сосава сущностей модельщику.
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929834
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. наследуемость с точностью (изоморфность с точностью, подобность с точностью) СТРУКТУР
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929837
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929839
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
Суроватный ключ для сущности...?
    #36929852
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Классификаторы, типы, связи, типизация связей и т.д.
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Суроватный ключ для сущности...?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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