На языках ООП я мог бы написать оболочку базы данных, которая инкапсулирует соединение с базой данных, управляет схемой и предоставляет несколько основных операций, таких как exec
, query
, prepare_and_execute
. Я мог бы даже иметь отдельный вспомогательный класс базы данных, который бы обрабатывал схему базы данных, оставляя абстракцию базы данных только для обработки соединений. Затем это будет использоваться обертками / фабриками моделей, которые используют класс абстракции базы данных для создания экземпляров классов модели. Что-то вроде этой диаграммы UML:
Каким будет предпочтительный способ разработки такой системы на идиоматическом haskell?