Должен ли я хранить поведение по умолчанию в данных? - PullRequest
1 голос
/ 15 апреля 2011

По умолчанию я отправляю счета на платежный адрес клиента.Когда клиент предпочитает выставленный по электронной почте счет-фактуру, я сохраняю нужный адрес в таблице «Настройки доставки счета-фактуры».

Должен ли я также хранить здесь экземпляры поведения по умолчанию?То есть, должны ли клиенты, которые удовлетворены отправленными по почте счетами, иметь в этой таблице строки с уникальными адресами выставления счетов? - для меня это только процесс по умолчанию, поскольку клиенты имеют уникальные адреса выставления счетов.

Меня беспокоит то, что если бы я захотел изменить свое поведение по умолчанию после сохранения этих экземпляров в виде строк, я быобновить огромное количество из них.Прямо сейчас я мог бы изменить поведение по умолчанию, сказав 1 подпрограмме COBOL захватить что-то, кроме адреса выставления счета, и отправить это на сервер печати / электронной почты.

Результат: я решил сохранить экземпляры поведения по умолчанию в таблице и добавить столбец «Источник», идентифицирующий каждую строку как «Системные настройки по умолчанию» или «Предпочтения клиента» Это консолидировалоинформацию, и сделал процесс выставления счетов согласованным, по крайней мере, с точки зрения «используемых таблиц».

1 Ответ

0 голосов
/ 16 апреля 2011

Есть что-то, что можно сказать о процессе, который работает одним-единственным способом.

Процессы, которые работают по одному и тому же пути, обычно легче создавать, легче устранять неполадки, легче поддерживать и легче анализировать. (Вы часто можете просто посмотреть на код и сказать: «Да. Это верно.»)

Хотя познавательная нагрузка низкая только по одному этому вопросу, реальная система может иметь сотни или тысячи подобных точек проектирования. Принятие общего подхода окупается в сложных системах.

Это что-то вроде «Положите все яйца в одну корзину, после того, как убедитесь, что у вас действительно хорошая корзина».

Но поскольку базы данных SQL настолько гибки, вы, вероятно, сможете получить массу преимуществ, просто создав представление, которое выбирает правильные адреса из двух таблиц. Тогда весь код приложения может просто прочитать это представление. Чтобы не отставать от меняющихся требований, просто измените представление.

...