powered by simpleCommunicator - 2.0.43     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нумерация объектов
19 сообщений из 19, страница 1 из 1
Нумерация объектов
    #33952313
Есть обеъкты различных типов.
Типы могут добавляться динамически.
Как нумеровавать объекты?
Пока вижу три варианта:
1. Сквозная секвенция по всем типам.(думаю что плохо)
2. Динамически создавать секвенцию по добавляемому типу(скорее всего, но чемто не нравится, динамическим ddl?)
3. Смотреть максимальный номер существующий номер по типу и +1.(плохо, возможны дубликаты)

Может есть еще что? Как посоветуете?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952321
Mikst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять 25...

чем сквозная то не устраивает?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952329
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неясно назначение нумерации, соответственно трудно давать совет. Если просто первичный ключ - п.1 нормально
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952330
12321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ненаглядностью, какой номер в данном типе
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952335
tru55Неясно назначение нумерации, соответственно трудно давать совет. Если просто первичный ключ - п.1 нормально
Например внутреняя нумерация документов предприятия
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952339
Mikst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12321Ненаглядностью, какой номер в данном типе

А зачем? и соглашусь с tru55, неясно для чего нумерация. но как показывает практика, знать "номер в данном типе" еще никому никогде не понадобилось. т.к. физического смысла он не имеет. И ситуация - удалили тип, появилась "дырка", перенумеровывать будете? скорее всего нет, а "наглядность" уже не соответствует действительности.
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952347
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
документооборот tru55Неясно назначение нумерации, соответственно трудно давать совет. Если просто первичный ключ - п.1 нормально
Например внутреняя нумерация документов предприятия

Внутрений номер относительно базы или этот номер видит пользователь?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952352
А чем плохо создавать динамически секывенции?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952369
Mikst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
документооборотА чем плохо создавать динамически секывенции?

вообще что либо создавать динамически - это плохо.
1. проблема названий.
2. проблемы копирования/переноса на другую базу
3. порблемы прав доступа
4. да мало ли...
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952374
tru55 документооборот tru55Неясно назначение нумерации, соответственно трудно давать совет. Если просто первичный ключ - п.1 нормально
Например внутреняя нумерация документов предприятия

Внутрений номер относительно базы или этот номер видит пользователь?

Видит пользователь:
приход1
приход2
приход3 этетичнее
Чем
приход1
приход8
приход17

Я вот о чем, может есть какойто другой подход?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952400
Mikst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"приход" порадовал :)

ну в таком случае общий сиквенс возможно и не пойдет.
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952410
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikst документооборотА чем плохо создавать динамически секывенции?

вообще что либо создавать динамически - это плохо.
1. проблема названий.
2. проблемы копирования/переноса на другую базу
3. порблемы прав доступа
4. да мало ли...имхо - не все так однозначно..
названия могут быть алгоритмически предопределены, права и перенос - решаемо.
Ну чё иначе делать, если логика ОАО БЛА_БЛА_БЛА предполагает нумерацию
документов с единицы-внутри_типа да еще напр. каждый_год_заново с 1?
Тут дешевле раз сделать процедуру, которая нужный сиквенс дернет (а если его нетути, то, кстати и создаст :)
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952414
Mikst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikst"приход" порадовал :)

ну в таком случае общий сиквенс возможно и не пойдет.

Опять таки, в случае с дырками, это имеет смысл как удаленное значение.
...
Рейтинг: 0 / 0
Нумерация объектов
    #33952415
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. использование sequence не гарантирует отсутствие пропусков в нумерации, о чем уже неоднократно говорилось
2. смотря для чего показывать пользователю этот номер. Если просто для красоты - сойдет и ROWNUM
3. если пользователи используют эти номера для работы, то, как показывает практика, они достаточно быстро запоминают их (если, конечно, их не очень много); при этом неважно, идут они по порядку или нет
...
Рейтинг: 0 / 0
Нумерация объектов
    #33953298
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор3. Смотреть максимальный номер существующий номер по типу и +1.(плохо, возможны дубликаты)

Дубликатов можно избежать, если эти номера хранить в отдельной таблице.
Последующий номер выдавать с помощью функции в которой соответсвующую запись блокировать select for update.
Кстати, если создавать свою функцию генерации омеров, то можно для разных типов описать свою цикличность нумерации, отсутвие - наличие дырок и т.п.
...
Рейтинг: 0 / 0
Нумерация объектов
    #33953314
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxifly автор3. Смотреть максимальный номер существующий номер по типу и +1.(плохо, возможны дубликаты)

Дубликатов можно избежать, если эти номера хранить в отдельной таблице.
Последующий номер выдавать с помощью функции в которой соответсвующую запись блокировать select for update.
Кстати, если создавать свою функцию генерации омеров, то можно для разных типов описать свою цикличность нумерации, отсутвие - наличие дырок и т.п.

И чем это (кроме отсутствия - наличия дырок) отличается от стандартного sequence ?
...
Рейтинг: 0 / 0
Нумерация объектов
    #33953342
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55 И чем это (кроме отсутствия - наличия дырок) отличается от стандартного sequence ?

1. Нестандартные варианты цикличности. Например - ежедневно. Ежечасно.
2. Нестандартные правила. Например номера кратые 1000 использовать нельзя.
(это пример из жизни а не надуманный)
3. Нет необходимости динамически плодить sequence
4. Возможно построить последовательность типа
AAA
AAB
AAC
или
АА1
AA2
...
AA9
AB1


PS: Я не говорю, что этот способ лучший. Просто в некоторых случаях он подходит. Например, для генерации суррогатных ключей его применять - глупо, а для генерации внешних номеров документов - вполне приемлемо.
...
Рейтинг: 0 / 0
Нумерация объектов
    #33954196
Maxifly автор3. Смотреть максимальный номер существующий номер по типу и +1.(плохо, возможны дубликаты)

Дубликатов можно избежать, если эти номера хранить в отдельной таблице.
Последующий номер выдавать с помощью функции в которой соответсвующую запись блокировать select for update.
Кстати, если создавать свою функцию генерации омеров, то можно для разных типов описать свою цикличность нумерации, отсутвие - наличие дырок и т.п.
Скорее всего на это то что нужно,
Код: plaintext
1.
2.
3.
create table doc_number
( id_type number CONSTRAINT doc_num_type REFERENCES Doc_type(ID) NOT NULL    ,
  cur_number number)
/
и не надо плодить последовательности динамически,
хотя без дырки будут
...
Рейтинг: 0 / 0
Нумерация объектов
    #33954250
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
документооборотхотя без дырки будут

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


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