Я использую SqlAlchemy, библиотеку ORM на питоне. И я использовал для доступа к базе данных непосредственно из бизнес-уровня напрямую, вызывая API SqlAlchemy.
Но потом я обнаружил, что это вызовет слишком много времени для запуска всех моих тестовых примеров, и теперь я думаю, что, возможно, мне следует создать уровень доступа к БД, поэтому я могу использовать макетные объекты во время теста, а не напрямую обращаться к базе данных.
Я думаю, что есть 2 варианта:
-
используйте один класс, который содержит соединение с БД и многие методы, такие как addUser/delUser/updateUser, addBook/delBook/updateBook. Но это означает, что этот класс будет очень большим.
-
Другим подходом является создание различных классов менеджера, таких как "UserManager", "BookManager". Но это означает, что мне нужно передать список менеджеров в бизнес-уровень, что кажется немного громоздким.
Как вы упорядочиваете слой базы данных?