tg-me.com/stringconcat/304
Last Update:
Немножечко откровений от Капитана Очевидность.
Как вы наверное в курсе, существует 2 способа задания идентификаторов.
- Естественные идентификаторы, которые натурально идентифицируют объект. Н-р СНИЛС, SSN, номер паспорта.
- Суррогатные идентификаторы, которые вводятся для того, чтобы просто различать сущности друг от друга (вообще, некоторые деятели считают идентификаторы протекающей абстракцией, но сейчас не об этом).
Когда-то я пытался опираться на естестенные идшки, но довольно часто что-то шло не так, а именно:
- идентификатор был не совсем уникальный, хотя клялись что такого быть не может
- идентификатор был внесен с ошибкой
- идентификатор оказался изменяемым по мере развития системы и предметной области
- или идентификатор вообще перестал быть идентификатором
Надеюсь вы понимаете, какое количество усилий нужно, чтобы внести подобные изменения в систему
На днях снова приключилась ситуация, когда натуральный идентификатор стал неуникальным. Суть такова. Есть устройство, его серийный номер глобально уникален. Отличный кандидат для естественного ключа. Но вдруг появляется сценарий, когда устройство нужно перенести в другую группу (юрлицо), при этом из старой оно исчезнуть не должно, ибо должна остаться отчетость и история, связаная с ним. И наш уникальный ключ становится уникальным только в пределах группы. Самое фиговое, когда в такой ситуации ключ уже протек в другие системы. Поэтому мое эмпирическое правило - всегда делай суррогатный, даже кажется, что есть отличный кандидат для естественного
BY StringConcat - разработка без боли и сожалений
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/stringconcat/304