Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Случайный номер не повторяющийся в базе

Сообщения:  [1-6] 

 
 автор: serenya1983   (22.02.2010 в 04:04)   письмо автору
 
   для: Trianon   (22.02.2010 в 00:47)
 

Генератор быстро число найдет, только время занимает проверка нет ли такого уже числа в базе данных - вот на что время тратиться, после каждого нового сгенерированного номера -запрос к базе данных! И вопрос как лучше это всё реализовать или может какой другой способ!?

  Ответить  
 
 автор: Trianon   (22.02.2010 в 00:47)   письмо автору
 
   для: Тень&   (21.02.2010 в 21:06)
 

>Что же за генератор псевдослучайных чисел у тебя

Товарисч не в курсе, что это такое, и как оно устроено.

  Ответить  
 
 автор: Тень&   (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 возможных комбинаций?

  Ответить  
 
 автор: serenya1983   (21.02.2010 в 20:05)   письмо автору
 
   для: Тень&   (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 комбинаций!

  Ответить  
 
 автор: Тень&   (21.02.2010 в 19:05)   письмо автору
 
   для: serenya1983   (21.02.2010 в 14:44)
 

> девяти значный номер
> В принципе такой способ работает, но когда в базе есть уже порядка 100 000 номеров, то цикл может выполняться от 30 секунд

Ты понимаешь, что тут что-то не так? Ты примерно представляешь сколько это -- 9-значное число? И какую часть от этого числа занимает 100000?

  Ответить  
 
 автор: serenya1983   (21.02.2010 в 14:44)   письмо автору
 
 

Есть задача создать случайный девяти значный номер и что б он не повторялся в базе данных.
если делать примерно так:

в цикле while присваиваем id - случайный номер
проверяем в базе данных нет ли такого номера, если нет цикл заканчиваем, если есть повторяем!
В принципе такой способ работает, но когда в базе есть уже порядка 100 000 номеров, то цикл может выполняться от 30 секунд пока подберёться свободный номер!

Как лучше реализовать такую задач, и при этом получать номер случайно?

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования