Привет, мне нужно сгенерировать 9 цифр уникальных номеров учетных записей. Вот мой псевдокод:Создание уникальных номеров учетных записей - рекурсивный вызов
function generateAccNo()
generate an account number between 100,000,000 and 999,999,999
if the account number already exists in the DB
call generateAccNo() /* recursive call */
else
return new accout number
end if
end function
функция, кажется, работает хорошо, но я немного беспокоюсь о рекурсивном вызове.
Будет ли это причиной утечки памяти (PHP 5 под apache)?
Является ли это приемлемым способом решения этой проблемы?
Спасибо за ваш вклад.
, но stackoverflow - это потрясающе! – Aaron 2008-09-19 01:02:13
Это было бы маловероятно. Это зависит от случайности сгенерированного номера счета и количества активных учетных записей. С управляемым кодом вы должны откладывать 10 тысяч раз, чтобы сломать стек. Когда вероятность неединственности приближается к 10 000: 1, тогда пришло время волноваться. – Wedge 2008-09-19 01:11:44
Спасибо Esetban, что вы сказали мне какое-то чувство, hehe :) Я позволю БД создать для меня значение и придерживаться последовательных чисел. Спасибо – 2008-09-19 01:18:14