Xpoint
   [напомнить пароль]

Генерация номера заказа

Метки: [без меток]
2005-07-04 18:45:35 [обр] Superman(0/16)[досье]

Какие варианты бывают? И какой лучше всего использовать?

Предполагается что заказы будут храниться в базе "вечно", кол-во заказов день неограничено.

спустя 12 минут [обр] Алексей В. Иванов(0/2861)[досье]
auto_increment
спустя 3 минуты [обр] Александр Лукьянов(0/781)[досье]
{UserID}-{timestamp}
спустя 8 минут [обр] Алексей В. Иванов(0/2861)[досье]
Телефонный диалог с покупателем:
Клиент: Мне до сих пор доставлен заказ
Поддержка: Назовите Ваш номер заказа
Клиент: 3945-1120489709
:)
Давайте тогда уж md5 от microtime сюда добавлять до пущей уникальности :)
спустя 4 минуты [обр] Александр Лукьянов(0/781)[досье]
Плох тот номер заказа, который не использует все символы клавиатуры :)
спустя 32 минуты [обр] GRAy(0/259)[досье]
самый простой и очевидный, как и сказал Алексей В. Иванов[досье] - auto_increment
А дальше варинты ограничиваются только вашей фантазией ;)
Если вы хотите чтобы номер заказа был "говорящим", то придётся разработать классификатор (или даже несколько, потом эти классификаторы надо вбить в голову пользователям и т.д. и т.п.) который будет кодировать объекты определяющие уникальность заказа а коды уже включать в номер заказа и что самое забавное - без порядкового номера заказа скорее всего не обойтись ;)
Даже если вы ОООЧЕНЬ успешная фирма то вряд-ли даже за всё время существования наберётся заказов порядка 9999999 (вместе с тестовыми, удалёнными, наследоваными от старых сиситем, и пр. и пр.). Всё равно эти коды никто в отдельности от системы анализировать не будет, а при её наличии под рукой - не важно как код сформирован, главное чтобы с его помощью можно было идентифицировать объект, а человек мог этот идентификатор продиктовать.
Если уж это так важно - иметь сквозные идентификаторы "ключевых" объектов системы (это удобно если существует репликация) воспользуйтесь генератором GUID в связке с таблицей раскодирующей эти GUID`ы ибо они мякго говоря неудобочитаемые.
спустя 13 минут [обр] Андрей Новиков(0/1242)[досье]
Что-то типа rand(9).auto_increment.rand(9), чтобы конкуренты не могли догадаться о том, сколько у вас заказов в день и какова динамика, а вы сами могли легко глазами вычленить номер для удобства анализа.
спустя 21 минуту [обр] Superman(0/16)[досье]
остановились с заказчиком на rand(9).auto_increment.rand(9)
спасибо всем
спустя 12 часов [обр] Андрей Брайнин(0/127)[досье]
вот такой вариант из реальной жизни: <user_id>-<user_order_num>
где
user_id - ID пользователя
user_order_num - порядковый номер заказа этого пользователя среди его заказов
для постоянных покупателей весьма удобно.
для разовых тож ничего.
при этом скрывает кол-во заказов.
Powered by POEM™ Engine Copyright © 2002-2005