|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Есть таблица с номерами NUMBERS(num,status), в которой содержится 10к записей. Мне нужно получить из нее один случайный свободный (status=0) номер и закрепить его (status=1) после использования. Не посоветуете, как лучше всего получить одну случайную запись из выборки? Решение "в лоб": Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Но намного больше мне нравится такой способ: Код: plsql 1. 2. 3. 4.
Вот только из документации не могу найти информацию, где определяется, какие записи попадут в sample, и попадут ли они туда до where или после. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:02 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.получить из нее один случайный свободный (status=0) номер и закрепить его (status=1) после использования. Не туда копаете изначально. Получить И ЗАКРЕПИТЬ одну запись - курсор select for update skip locked, из которого фетчим одну строку с последующим update where current of. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:09 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., sample_percent For sample_percent, specify the percentage of the total row or block count to be included in the sample. ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:11 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousAlibek B.получить из нее один случайный свободный (status=0) номер и закрепить его (status=1) после использования. Не туда копаете изначально. Получить И ЗАКРЕПИТЬ одну запись - курсор select for update skip locked, из которого фетчим одну строку с последующим update where current of. Ах да, случайную... Ну отсортируйте табличку посредством insert into ... select from ...order by dbms_random.value, 10к строк - мелочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:12 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymous, он хочет чтоб селект вернул одну "очень" случайную запись ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:14 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.попадут ли они туда до where или после. До. sample - не фильтр, это часть query_table_expression ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:14 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Staxон хочет чтоб селект вернул одну "очень" случайную запись ну дык ить и будет "случайная", ежели записи хранятся в хаотичном порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:15 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxон хочет чтоб селект вернул одну "очень" случайную запись ну дык ить и будет "случайная", ежели записи хранятся в хаотичном порядке. оно как-бы теоретически без ордер бай и так случайно выбирает, но на практике в более менее постоянном порядке напр надо разыграть приз (случайному клиенту), если без dbms_random, то счасливчик буде более менее один и тот же (напр из первого блока) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:21 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Вот только из документации не могу найти информацию, где определяется, какие записи попадут в sample, и попадут ли они туда до where или после. из доки https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#SQLRF01702 sample_clause The sample_clause lets you instruct the database to select from a random sample of data from the table, rather than from the entire table. .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:26 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Staxнапр надо разыграть приз (случайному клиенту) В этом случае Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:38 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousВ этом случае нету в табличке сквозного num ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:49 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Staxandrey_anonymousВ этом случае нету в табличке сквозного num Что это меняет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:53 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Собственно, еще раз, для полноты изложения: - если несколько параллельных процессов должны обрабатывать набор данных, отбирая по одной записи - см. метод с for update skip locled - если надо всего лишь выбрать пару-тройку "призеров" - то проще всего генерировать случайный ключ и делать probe. Генерацию ключа можно заменить генерацией случайного rowid, если чуть напрячься и построить карту экстентов таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:56 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousЧто это меняет? что кодировать взамест and num = round(dbms_random.value(1,10e3))? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 17:57 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Staxandrey_anonymousЧто это меняет? что кодировать взамест and num = round(dbms_random.value(1,10e3))? Верхнюю и нижнюю границу num. Для сильно разреженных данных можно либо пронумеровать строки, либо генерировать rowid. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 18:07 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousВерхнюю и нижнюю границу num. Для сильно разреженных данных можно либо пронумеровать строки, либо генерировать rowid. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 18:14 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., update numbers set status=1 where status=0 and rownum=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 19:20 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
-2-update numbers set status=1 where status=0 and rownum=1 Само собой, только добавить returning into. Ну тут нет случайности. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 19:25 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymous, добавте в вывод колличество спроб я не спорю и ничего не доказываю но имхо order by dbms_random.value самый лучий вариант .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 19:41 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Сортировать 10к строк, чтобы получить из них одну случайную? Как-то это выглядит не очень. Тогда уж лучше вообще не сортировать, а вместо rownum=1 написать rownum=(select count from numbers where status=1) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 20:02 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Ну тут нет случайности.В оракле нет штатных средств получения случайности. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 20:20 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Сортировать 10к коротких строк - мелочь, вообще говоря, если не сто-двести-тысячу раз в секунду. Но Вы так и не озвучили задачу, для решения которой захотелось странного. Alibek B.вместо rownum=1 написать rownum=(select count from numbers where status=1) И что будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 20:39 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Регистрируются клиенты, получают уникальный номер и затем используют этот номер в разных местах. Если эти номера будут не случайными, а последовательными, то это будет нежелательным. Планируются сценарии типа "подарок каждому сотому клиенту" и последовательная нумерация будет приводить к попыткам манипулирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 22:32 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousИ что будет? По идее - я выберу не первую строку перемешанной выборки, а случайную строку не перемешанной выборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 22:34 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousСортировать 10к коротких строк - мелочь Не только сортировать - вначале сгенерировать 10к случайных значений, а затем их сортировать. Сгенерировать одно случайное значение и отфильтровать по нему кажется более оптимальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 22:38 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.написать rownum=(select count from numbers where status=1) Очепятка, я имел ввиду примерно такое: Код: plsql 1. 2. 3. 4.
Но в таком виде запрос возвращает пустой результат. Даже с rownum=2 возвращает пустой результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 22:49 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.последовательная нумерация будет приводить к попыткам манипулирования.Что меняет непоследовательность? where rownum=1 достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 23:09 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Человек отправляет заявку, получает номер 290 - и отправляет ещё десяток заявок, чтобы получить номер 300. Если номер будет рандомный, то мотивов так делать у него не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2019, 23:50 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., Sys_guid используйте вместо сиквенсов и все проблемы исчезнут ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 00:21 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Человек отправляет заявку, получает номер 290 - и отправляет ещё десяток заявок, чтобы получить номер 300. Если номер будет рандомный, то мотивов так делать у него не будет.Во-первых, апдейт "первой" строки не обязан возвращать последовательные числа. Во-вторых. Стоит ли переживать из-за различий между C2035B и C204 среди десятка пользователей по недоразумению прошедших твою "регистрацию"? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 06:41 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Человек отправляет заявку, получает номер 290 - и отправляет ещё десяток заявок, чтобы получить номер 300. Если номер будет рандомный, то мотивов так делать у него не будет.Высосанная из пальца проблема - измышлизмЪ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 07:50 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Человек отправляет заявку, получает номер 290 - и отправляет ещё десяток заявок, чтобы получить номер 300. Если номер будет рандомный, то мотивов так делать у него не будет. использовать dbms_random 1) выдавать последовательно случайные номера из "дипозитария" (table dropme_t) 2) генерить номер налету (если дубль - повторить, імхо гемороя больше) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 08:33 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
ElicВысосанная из пальца проблема - измышлизмЪ. На обработку заявок тратится время и организационные ресурсы, пусть и немного. Лучше изначально исключить такие траты. Staxгенерить номер налету (если дубль - повторить Это не подойдет. Допустим из 10к строк использовано 9990. Сколько будет повторений, чтобы получить оставшиеся 10? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 09:14 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Это не подойдет. Допустим из 10к строк использовано 9990. Сколько будет повторений, чтобы получить оставшиеся 10? авторімхо гемороя больше ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 09:41 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
xtenderAlibek B., Sys_guid используйте вместо сиквенсов и все проблемы исчезнут В означенной постановке (регистрируются клиенты) поддерживаю полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 10:46 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
если речь идет о регистрации (каждый сотый получает приз) я б генерил случайное число от 0 до 100 и если оно равно 7, то получи приз .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:24 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Stax, Если ты генеришь каждый раз случайное число, то сомневаюсь, что каждый сотый получит приз. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:39 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Staxесли речь идет о регистрации (каждый сотый получает приз) я б генерил случайное число от 0 до 100 и если оно равно 7, то получи приз Это ни коим образом не избавляет от заявленного ТС метода "охоты за призом" посредством многократной регистрации. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:39 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Staxя б генерил случайное число от 0 до 100 и если оно равно 7, то получи призНет, 42 лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:47 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousЭто ни коим образом не избавляет от заявленного ТС метода "охоты за призом" посредством многократной регистрации. я понял проблему многократной регистрации чуть по другому колиент догадался о системе определения выиграша (ид кратно 100), и если у него 297 то достаточно еще трех раз если генерить, то приз может выпасть и напр два раза подряд, а может и за 100 не повезет ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:51 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
123ййStax, Если ты генеришь каждый раз случайное число, то сомневаюсь, что каждый сотый получит приз. не сотый, а примерно сотый, если равноменое распределение от 0 до 100 .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:53 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
123ййЕсли ты генеришь каждый раз случайное число, то сомневаюсь, что каждый сотый получит приз. "Каждый сотый по порядку" - это не случайное число. а вот "Один из ста" - вполне себе. И в этом случае все зависит от качества ГСЧ. В случае dbms_random все не так уж и плохо: Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:55 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
ElicStaxя б генерил случайное число от 0 до 100 и если оно равно 7, то получи призНет, 42 лучше. согласен 42 лучше чем луче? чем 7 .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 12:56 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
StaxElic42 лучше. чем луче? чем 7 Вопрос филисофский. 42 - уже ставший классическим ответ на «Главный вопрос жизни, вселенной и всего такого» (англ. The Ultimate Question of Life, the Universe, and Everything) 7 - число простое, но тоже нетривиальное: семь чудес света, 7 дней (неделя) на сотворение мира, семь цветов радуги и много еще чего 7... в общем, "удачное" такое число. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:01 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymous"Каждый сотый по порядку" - это не случайное число. а вот "Один из ста" - вполне себе. а зачем нужно случайное число ? Alibek B.Регистрируются клиенты, получают уникальный номер и затем используют этот номер в разных местах. Если эти номера будут не случайными, а последовательными, то это будет нежелательным. Планируются сценарии типа "подарок каждому сотому клиенту" и последовательная нумерация будет приводить к попыткам манипулирования. вполне достаточно mod ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:09 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
123ййвполне достаточно mod мод от чего? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:13 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Для проверок типа "каждый сотый" разумеется будут использоваться свои собственные счетчики (критерии), поэтому способ выделения номеров может быть любым, хоть последовательный, хоть рандомный. Но если он будет последовательный, то пользователи будут думать, что призовым будет номер, оканчивающийся на два нуля, и будут пытаться его получить. Ну либо будут пытаться получить красивый номер из каких-то других соображений. Чтобы таких мотивов у них не было, я хочу выдавать рандомные номера. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:15 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Чтобы таких мотивов у них не было, я хочу выдавать рандомные номера. Выдавайте GUID. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:17 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Это будет неудобно уже для пользователей. Номер будет одновременно являться и лицевым счетом. При пополнении лицевого счета не составит проблемы запомнить и ввести 4 или 5 цифр. Но запомнить 32 шестнадцатеричных чисел сможет не всякий, и даже ввести их без ошибки получится не всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:21 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Это будет неудобно уже для пользователей. Выдавайте карточку или QR-код с GUID-ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:23 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Строго говоря, QR-код по ГОСТ Р 56042-2014 (ДШК для Сбербанка) и так имеется. Но пользователи далеко не всегда носят с собой карточки или квитанции. Им удобнее запомнить небольшое число. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:27 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Stax, например от row_number() или count а если "+- неважно" то можно добавить, например, поле id (генерация сиквенсом) и от него ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:28 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Им удобнее запомнить небольшое число. Не надо говорить за всех. Сегодняшний пользователь обычно таскается с мобильником, на котором склонен держать приложения, которые могут демонстрировать QR или общаться по NFC. ...в конце концов, используйте для идентификации email/телефон, это сейчас становится общепринятым подходом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:35 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., Какая-то очень странная и надуманная проблема, имхо. Если можно до бескоечности заводить заявки, то заведя 95% от всех заявок - клиент получает 95% всех возможных призов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:38 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., Люди регулярно забывают 4х значный пин код и 3х значный cvc, зачем им вообще помнить6еще и ваши номера... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 13:41 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Люди могут забывать что угодно, хоть годовщину свадьбы или сроки сдачи работы. Люди разные и всем не угодишь. Но все же большинство людей успешно запоминают 4-значный PIN-код, 11-значный номер телефона, 5-значный номер лицевого счета коммунальных услуг. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:16 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Уже третья страница, а я так и не понял, чем не устраивает where rownum=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:18 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
feagorЕсли можно до бескоечности заводить заявки, то заведя 95% от всех заявок - клиент получает 95% всех возможных призов Формально да. Но выполнение заявки занимает определенное время и если создать 10-20 заявок труда много не потребуют, то создание тысяч заявок потребует много времени и слишком хлопотно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:19 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.большинство людей Большинство людей успешно запоминают то, чем пользуются ежедневно. Используемая раз в N месяцев цифирь к таковой информации не относится. Потому еще раз: - привяжитесь к email и/или номеру телефона - сделайте мобильное приложение и/или карточку NFC/ карточку с QR Не заставляйте людей запоминать нужную только вам цифирь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:22 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.много времени и слишком хлопотно. Мда... Коллега, расширяйте кругозор. Инструментов по автоматическому заполнению форм существует в количестве. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:23 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Но все же большинство людей успешно запоминают 4-значный PIN-код, 11-значный номер телефона, 5-значный номер лицевого счета коммунальных услуг.ась? серьезно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:24 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousпривяжитесь к email и/или номеру телефона Возможность использования номера телефона есть. Но некоторая часть пользователей пользуются услугами в нескольких точках — у них на каждой точке свой лицевой счет, но одинаковый номер телефона. Для таких пользователей номер телефона использовать нельзя, он не является уникальным идентификатором. xtenderсерьезно? За пределами Москвы тоже есть жизнь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:34 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.создать 10-20 заявок труда много не потребуют, то создание тысяч заявок потребует много времени и слишком хлопотно.Ну тогда, при обнаружении последовательной выдачи пациент станет докручивать до красивого номера, заранее зная, что осталось не более 20 заходов, иначе забьет. При "случайной" он будет пытаться "ну еще разок" в зависимости от азартности. 10к номерной базы вероятно предполагает менее 1к пациентов, что тоже ставит под сомнение необходимость изворачиваться с последовательными номерами. Из ненависти к пациентам-переборщикам достаточно заранее зарезервировать красивые номера для своих. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:43 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
-2-Из ненависти к пациентам-переборщикам достаточно заранее зарезервировать красивые номера для своих. :) Достаточно потребовать подтвердить телефонный номер ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:46 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.он не является уникальным идентификатором так сделайте уникальный для системы, а пользователям можете всем раздать "универсальный код" 1111 :) автор у них на каждой точке свой лицевой счет, но одинаковый номер телефона сделайте concat вот и уникальность появилась я сомневаюсь, что вы будете верефицировать клиента по вашему коду ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:46 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.andrey_anonymousпривяжитесь к email и/или номеру телефона Возможность использования номера телефона есть. Но некоторая часть пользователей пользуются услугами в нескольких точках — у них на каждой точке свой лицевой счет, но одинаковый номер телефона. Для таких пользователей номер телефона использовать нельзя, он не является уникальным идентификатором. Минуточку. Никто не говорит "сделайте телефон номером ЛС", тем более что телефон можно и поменять - в этом смысле больше подходит СНИЛС. Вам предлагают идентифицировать клиента по номеру телефона/email. А уж идентифицированному клиенту ПОКАЗЫВВАТЬ все его ЛС и позволять с ними оперировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 14:50 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
andrey_anonymousА уж идентифицированному клиенту ПОКАЗЫВВАТЬ все его ЛС и позволять с ними оперировать. И как это будет выглядеть, к примеру, на платежном терминале? На платежных терминалах как правило подобные возможности не предусмотрены, там обычно указывается номер лицевого счета и сумма к оплате. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:07 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Но некоторая часть пользователей пользуются услугами в нескольких точках — у них на каждой точке свой лицевой счет, но одинаковый номер телефона. Для таких пользователей номер телефона использовать нельзя, он не является уникальным идентификатором.Alibek B.За пределами Москвы тоже есть жизнь. это не жизнь, а сплошная борьба и преодоление, если вы ставите во главу угла создание сложностей своим пользователям. Наймите уже нормальных UX специалистов и архитекторов, да хотя бы своруйте подходы, которые уже давно придуманы. Возьмите, хотя бы билайн какой-нибудь - там вы можете управлять счетами всей семьи, не заставляя пользователя запоминать ни пароли, ни логины ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:09 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
xtenderВозьмите, хотя бы билайн какой-нибудь Если брать какой-нибудь билайн, то там роль лицевого счета выполняет 10-значный номер телефона, который используется и для пополнения счета, и для авторизации в ЛК, и в других сценариях. В чем тут принципиальное отличие от моего лицевого счета с 4-значным номером? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:16 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.andrey_anonymousА уж идентифицированному клиенту ПОКАЗЫВВАТЬ все его ЛС и позволять с ними оперировать. И как это будет выглядеть, к примеру, на платежном терминале? Оплата по номеру платежного документа (квитанции, инвойса). Оплата на номер телефона/email. В приличных кассах можно сканировать штрих-код или QR. Те, у кого "много точек", не пойдут платить в терминал - у обеспеченных людей, как правило, есть банковский счет и оплачивать услуги удобнее переводом. Старики скорее по старинке пойдут "в сберкассу" с квитанцией. Кроме того, платежные терминалы уже начинают отмирать. Ваши клиенты оценят возможность оплаты с компьютера/мобильного устройства в ЛК, в который попадут по логину или номеру телефона - без необходимости переться к терминалу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:20 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.xtenderВозьмите, хотя бы билайн какой-нибудь Если брать какой-нибудь билайн, то там роль лицевого счета выполняет 10-значный номер телефона, который используется и для пополнения счета, и для авторизации в ЛК, и в других сценариях. В чем тут принципиальное отличие от моего лицевого счета с 4-значным номером? вы путаете. роль лицевого счета там выполняет такой лицевой счёт. а вот методом идентификации является номер телефона. Не заставляйте пользователей запоминать только для вас важные цифры. Свой номер телефон пользователь знает итак. Ваш номер никто специально запоминать не будет в большинстве случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:22 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.На платежных терминалах как правило подобные возможности не предусмотреныпредусмотрены, и даже есть проверки лимитов пополнения, существования счета, соответствия адресов и тд ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:25 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.там роль лицевого счета выполняет 10-значный номер телефонанет, лицевой счет это другое. У человека может быть несколько лицевых счетов. К каждому лицевому счету может быть привязано несколько номеров. Более того, номера могут меняться. Не путайте это с авторизацией. Или чтобы было проще - сравните с авторизацией в Сбер, Тиньков, Альфабанка и тд по номеру телефона, и там тоже может быть по несколько счетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:29 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
feagorНе заставляйте пользователей запоминать только для вас важные цифры. Я эту точку зрения и в первый раз понял. Точка зрения ясна. Указанный номер правильнее всего будет назвать клубной картой, а не просто лицевым счетом. Это не так востребовано, как номер телефона, но и не является каким-то абстрактным числом, нужным только раз в месяц для пополнения счета — с помощью указанного номера и пароля осуществляется подключение к различным онлайн-сервисам. Так что этот 4-значный номер вполне может и запомнить. Номер телефона тут не подходит в силу его неуникальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:31 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., вы реально "злобные буратины"... Что за ненависть к пользователям? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:33 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Номер телефона тут не подходит в силу его неуникальности. ШО??? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:34 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Указанный номер правильнее всего будет назвать клубной картой, а не просто лицевым счетом. Это не так востребовано, как номер телефона, но и не является каким-то абстрактным числом, нужным только раз в месяц для пополнения счета — с помощью указанного номера и пароля осуществляется подключение к различным онлайн-сервисам. Давайте еще раз, по порядку и медленно. 1. Тезис о том, что номер ЛС обычному гражданину в нормальной ситуации требуется чаще, чем раз в месяц - ложен. Первые несколько дней, пока человек играет в подписки/отписки - да, дальше - нет. 2. Разделите две сущности: субъект, которого требуется идентифицировать, и объект, для доступа к которому он авторизован. Связь между этими сущностями, в общем случае, многие-ко-многим, т.е. вносить деньги по ЛС может, вообще говоря, любой член семьи, и у любого члена семьи может быть несколько лицевых счетов. Более того, у субъекта может быть несколько идентификаторов-псевдонимов (два телефона, три email, логин) Тогда схема будет классическая: - Аутентификация субъекта (установление личности по номеру телефона/email/логин_паролю) - Авторизация (определение множества ЛС, с которыми может оперировать субъект) Для лишенцев, которые зачем-то платят комиссию терминаловладельцам, можно оставить возможность платить прямо на ЛС или обеспечить более сложный протокол с отображением доступных для субъекта операций. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 15:50 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B.Для проверок типа "каждый сотый" разумеется будут использоваться свои собственные счетчики (критерии), поэтому способ выделения номеров может быть любым, хоть последовательный, хоть рандомный. Но если он будет последовательный, то пользователи будут думать, что призовым будет номер, оканчивающийся на два нуля, и будут пытаться его получить. Ну либо будут пытаться получить красивый номер из каких-то других соображений. Чтобы таких мотивов у них не было, я хочу выдавать рандомные номера. Тогда проще выдавать номера последовательно, но пользователю отображать не номер n, а f(n) - некую биекцию, которой пользователь не поймет как манипулировать. Например, выбрать произвольную перестановку цифр, сделать с ними еще битовый ксор у соседних цифр, и в конец дописать еще две цифры - какой-нибудь остаток от деления на 79. Дешифровывается однозначно, но для пользователя становится случайным набором цифр. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 16:26 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
ValergradТогда проще выдавать номера последовательноУ автора уже есть пул номеров. Что может проще where rownum=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 16:34 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Сдаюсь. Зарезервировал красивые номера и оставил последовательную выдачу оставшихся с rownum=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 16:38 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Номера зарезервировал так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Не поделитесь, какие еще маски можно добавить для резервирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 16:43 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., цель резервирования? для знакомых? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 17:02 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Скорее для сотрудников и сервисных аккаунтов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 17:03 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Alibek B., хотел зарезервировать 777 получил ORA Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 17:13 |
|
Получить случайную строку из выборки
|
|||
---|---|---|---|
#18+
Любопытно. После случайного количества запусков сессия обрывается. Но если в сравнении убрать символ $, то работает нормально: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Или какой-то глюк самого Oracle, или to_char добавляет в конец строки какой-то невидимый символ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2019, 17:34 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882161]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 444ms |
0 / 0 |