|
|
|
|
|
для: Trianon
(22.02.2010 в 00:47)
| | Генератор быстро число найдет, только время занимает проверка нет ли такого уже числа в базе данных - вот на что время тратиться, после каждого нового сгенерированного номера -запрос к базе данных! И вопрос как лучше это всё реализовать или может какой другой способ!? | |
|
|
|
|
|
|
|
для: Тень&
(21.02.2010 в 21:06)
| | >Что же за генератор псевдослучайных чисел у тебя
Товарисч не в курсе, что это такое, и как оно устроено. | |
|
|
|
|
|
|
|
для: serenya1983
(21.02.2010 в 20:05)
| | > т.е. если в базе 100 т., то отстаёться еще: 999 999 999 - 100 000 000 - 100 000 остаёться еще около 899 899 999 комбинаций!
Вот именно. Что же за генератор псевдослучайных чисел у тебя, что он все 30 секунд генерирует числа именно из этих несчастных 100 000, когда есть ещё 899 899 999 возможных комбинаций? | |
|
|
|
|
|
|
|
для: Тень&
(21.02.2010 в 19:05)
| | я имел ввиду когда в базе уже есть 100 000 девяти значных номеров
маскимальное значение - 999 999 999
минимальное - 100 000 000
т.е. если в базе 100 т., то отстаёться еще: 999 999 999 - 100 000 000 - 100 000 остаёться еще около 899 899 999 комбинаций! | |
|
|
|
|
|
|
|
для: serenya1983
(21.02.2010 в 14:44)
| | > девяти значный номер
> В принципе такой способ работает, но когда в базе есть уже порядка 100 000 номеров, то цикл может выполняться от 30 секунд
Ты понимаешь, что тут что-то не так? Ты примерно представляешь сколько это -- 9-значное число? И какую часть от этого числа занимает 100000? | |
|
|
|
|
|
|
| Есть задача создать случайный девяти значный номер и что б он не повторялся в базе данных.
если делать примерно так:
в цикле while присваиваем id - случайный номер
проверяем в базе данных нет ли такого номера, если нет цикл заканчиваем, если есть повторяем!
В принципе такой способ работает, но когда в базе есть уже порядка 100 000 номеров, то цикл может выполняться от 30 секунд пока подберёться свободный номер!
Как лучше реализовать такую задач, и при этом получать номер случайно? | |
|
|
|
|