Схема нумерации товаров - PullRequest
1 голос
/ 25 апреля 2009

Я работаю над проектом, который требует, чтобы документы были связаны со счетами клиентов. Каждый документ должен иметь уникальный идентификатор. Схема, над которой я работаю, имеет формат AAA - ####. Буквенно-цифровая часть идентификатора позволит отслеживать дату, используя три буквы (гласные будут пропущены, чтобы не допустить нецензурных или оскорбительных слов). Схема действует около 21 года, при условии, что за один день приходит не более 9999 документов. Первые два символа фиксируют серийную дату в году, используя 21 букву в алфавите (сбрасывание гласных), что дает 21 ^ 2, что более чем достаточно для записи дня года. Последний буквенно-цифровой символ фиксирует год. Что, опять же, ограничивает схему до 21 года. Интересно, кто-нибудь реализовал подобный тип схемы и какие методы были использованы.

Ответы [ 3 ]

1 голос
/ 25 апреля 2009

День года зависит от часового пояса. Если ваши пользователи пересекают несколько часовых поясов, ваша схема именования может не работать.

1 голос
/ 25 апреля 2009

Что если один и тот же пользователь загрузит один и тот же файл? Я не вижу, чтобы ты что-то тут автоинкрементный. У вас есть фиксированная ширина? Я реализовал похожую схему, но я опустил гласные и просто добавил время эпохи к имени файла. Если вы введете имя файла в базу данных, вы можете положиться на него, чтобы автоматически создать уникальный идентификатор. Итак, ваш вопрос заключается в том, как преобразовать их имя файла в идентификатор фиксированной ширины? Я бы предложил разрешить пользователю самому выбирать идентификатор и использовать базу данных для проверки уникальности. Ограничение пользователя текстовым полем с фиксированной шириной - плохая практика, навязываемая программистами остальному миру.

0 голосов
/ 25 апреля 2009

Если вместо увеличения последней буквы за год вы используете все три для представления дня и просто отсчитываете от фиксированной даты, вы можете сделать это в течение 25 лет вместо 21.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...