Я хотел бы предложить, чтобы у вас был отдельный слой данных.
Пусть этот слой данных объявит открытый интерфейс и типы данных, которые использует ваша бизнес-логика.
После этого вы сможете получить фактические данныеЭкземпляр слоя, созданный с использованием фабричного шаблона, который создает конкретный класс для подключения к MySQL или DB2.Делая это таким образом, вы можете изменить базу данных без необходимости изменения бизнес-кода (поскольку все это относится к типу интерфейса).Вы даже можете настроить его на выполнение этого действия во время выполнения, скажем, на основании настроек конфигурации.
например,
IDataLayer - ваш базовый класс с методами для получения / настройки данных (обработка базы данных с мелкими проблемами)скрыт внутри).
Затем есть дочерние классы MySQLDataLayer и DB2DataLayer.
Бизнес-логика относится только к классам IDataLayer и никогда не содержит классов MySQLDataLayer / DB2DataLayer.