|
14.08.2017, 11:04 | #1 |
Участник
|
Генерация неуникального ID
Добрый день товарищи!
DAX 3.0. В рамках одной задачки необходимо генерить некий ID, который м.б. неуникальным и прерывным в своей последовательности. Номерная серия не подходит. М.б. есть уже существующие примеры в системе, дабы не изобретать велосипед. Заранее спасибо! |
|
14.08.2017, 11:13 | #2 |
Участник
|
А каковы критерии неуникальности? то есть, в каком случае нужно генерировать номер как плюс один к предыдущему, а в каких случаях - какой то другой который уже есть? Странная задача.
|
|
|
За это сообщение автора поблагодарили: r2d2 (1). |
14.08.2017, 11:15 | #3 |
Участник
|
Критерий уникальности по приходящим из сторонней базы данным. Т.е.определенная группа записей может иметь один ID.
|
|
14.08.2017, 12:08 | #4 |
Участник
|
Цитата:
Следовательно имеется ввиду ID группы. Соответственно, надо понять как выделить группу во входящих данных (например значение полей должны совпадать, или это должен быть неприрывный кусок с совпадающими значениями поле и т.п.) Завести таблицу групп и там добавлять запись или искать по естественному ключу |
|
|
За это сообщение автора поблагодарили: r2d2 (1), mazzy (2). |
14.08.2017, 12:13 | #5 |
Участник
|
Цитата:
Сообщение от belugin
Неуникальный ID это противоречие - если он неуникальный, то он не может идентифицировать.
Следовательно имеется ввиду ID группы. Соответственно, надо понять как выделить группу во входящих данных (например значение полей должны совпадать, или это должен быть неприрывный кусок с совпадающими значениями поле и т.п.) Завести таблицу групп и там добавлять запись или искать по естественному ключу |
|
14.08.2017, 11:17 | #6 |
Наблюдатель
|
random не подойдет?
__________________
Ax 3.0 SP3 |
|
|
За это сообщение автора поблагодарили: r2d2 (1). |
14.08.2017, 12:01 | #7 |
Участник
|
|
|
14.08.2017, 13:53 | #8 |
Участник
|
Считать хеш от значений полей идентифицирующих группу.
|
|
|
За это сообщение автора поблагодарили: r2d2 (1). |
22.08.2017, 12:24 | #9 |
Участник
|
Цитата:
По запросу предоставляется следующий уникальный ID из номерной серии. Номерную серию можно настроить чтобы непрерывность не контроллировалась. Это как раз не велосипед. Хочется велосипед - Random, GUID, или хеш-функция (как уже тут советовали). Но мне так кажется, что проблема не в том как генерить некий ID, а вообще в определении этого ID из набора данных. Нет? P.S. Еще из не велосипедов - это RecId записи в таблице. |
|
22.08.2017, 12:39 | #10 |
Banned
|
Цитата:
X++: EventInbox::idGenerator().nextval(1,#EVENT_SEQUENCE_SCOPE); X++: #Event public static Sequence idGenerator() { ; //Should only be instantiated once return new Sequence(#EVENT_SEQUENCENAME, #EVENT_SEQUENCEID, #EVENT_SEQUENCEMIN, -1); } |
|