Я постараюсь сделать этот пример максимально простым.
Я пытаюсь реализовать управляемый доменом дизайн (бизнес-объект для представления каждой таблицы) в старом приложении VB6, которое не следует шаблонам ООП. Существующий код написан так же, как вы могли ожидать от 10-летнего приложения VB (то есть использование ADODB.Recordset без intellisense для полей). Существующий код не является ООП, и я стараюсь придерживаться его существующих шаблонов.
Одна из моих проблем здесь заключается в том, как обрабатывать изменения в базе данных по мере появления новых требований, не создавая слишком много путаницы для разработчиков, которые могут взглянуть на дизайн БД позже.
Предположим, в этом приложении у нас есть гипотетическая таблица «Клиент», которая явно перегружена как таковая:
clientId ClientName ContactName Адрес Город Штат Почтовый индекс CreditLimit CurBalance (и так далее и так далее ...)
Новое требование требует новых финансовых полей:
Условия процентной ставки
Было бы приемлемо разбить InterestRate и Условия на отдельную таблицу «Fiancials», которая может выглядеть как странное разделение, так как в исходной таблице будут существовать 2 финансовых поля?
В идеале старые финансовые поля (CreditLimit, CurBalance) должны быть перемещены в эту новую таблицу, но из-за риска взлома МНОГИХ частей приложения нежелательно перемещать поля. Я просто хочу прекратить нынешнюю практику создания стола все шире и шире.
По сути, я думаю, что я хочу оставить старый дизайн кода / таблицы в одиночку, сделать разрыв с новыми полями и создать доменные объекты для обработки любых существующих и новых таблиц, т.е. объект Client может предоставлять свойство Financials, представляющее новые Financials. таблица.
Является ли хорошей идеей для TRY сделать чистый перерыв или просто добавить новые поля в существующую гадость?
Существует ли разумная схема именования для представления новых таблиц по сравнению со старыми?
Как вы, администраторы баз данных, делаете чистый разрыв, не разрывая существующий дизайн?
спасибо за любые мысли