Показать сообщение отдельно
Старый 06.10.2011, 13:08   #29  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,874 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Talking
Цитата:
Сообщение от EVGL Посмотреть сообщение
Что касается InvoiceId, придерживаюсь мнения Mazzy: лучше не наступать на грабли, не ловить колючих ежей и оставлять номер уникальным. Если говорить о моих клиентах, то точечки, черточки и невидимые символы их вполне удовлетворяют.
EVGL, MAZZY - но ведь по сути это вариант 1, предложенный мной :
Цитата:
Сообщение от Logger Посмотреть сообщение
Самым безопасным, простым и дешевым способом на мой взгляд было бы сделать поле CustInvoiceJour.InvoiceId уникальным, а для печати использовать свое кастомизированное поле. Так безопаснее. По крайней мере большинство кода с вышеописанными косяками при этом условии выполняется правильно. Косяк не проявляется.
Ведь, по сути, что вы предлагаете:
а. Сделать поле InvoiceID де факто уникальным, за счет того что номера не повторяются из-за добавления несущественные постфиксы в виде точек, черточек, etc.
б. Сделать добавляемые постфиксы малозаметными для пользователя (точка, черточка), чтобы на печати номера были похожи.

То есть, вы хотите чтобы для пользователя номер выглядел неизменным !
Зачем же мучать себя и людей и ограничиваться полумерами ?

Не проще ли развести идентификатор на 2 :
1. внутренний служебный идентификатор (InvoiceId) - желательно уникальный.
2. внешний идентификатора для печати (для пользователя) - свое локализованное поле.

В фактурах так и сделано.
Внутренний ключ это пара : FactureId, Module
Внешний номер для печати : FactureExternalId

Всем удобно, никто не жалуется. Проблем с этим ни разу не встретили.

Или вы во что бы то ни стало хотите избежать модификаций ?
Чего их бояться-то

Последний раз редактировалось Logger; 06.10.2011 в 13:16.