Итак, кейс.
Мы делали систему, которая с одной стороны взаимодействует с SAP клиента, с другой стороны - с ФГИС МДЛП (система отслеживания движения лекарственных препаратов).
Одна из задач была проста:
- SAP выгружает в сетевую папочку накладную
- мы туда смотрим периодически
- видим новую накладную
- читаем
- вытаскиваем из нее номера упаковок
- идем в МДЛП и узнаем - были ли реально эти упаковки отгружены ранее по этой накладной
- если да - то разрешаем принять на склад партию
Задачу решили быстро, на тестовом стенде всё летает. Стали сдавать.
Но перед сдачей решили посоветоваться со знающим челом.
Он и говорит - код не пройдет аудит.
Я аж сел. Что там может не пройти-то? Всё красиво, по стандартам, тестами покрыто, граничные случаи учтены, что не так-то?
Ответ:
У вас не хранятся доказательства получения накладной.
Мало смотреть в сетевую папку. Нужно, как только видите новый файл, утащить его к себе, сохранить в надежное хранилище, сохранить в базу дату-время, имя файла, контрольную сумму.
Иначе вы никогда не докажете, что а) накладная была и что б) она была именно такой
Вас мгновенно подставят, изменив ее задним числом и обвинят в том, что код забагованный и из-за него теперь все беды.
А вы тут про DROP CONSTRAINT рассуждаете всерьез...