Я использую SqlAlchemy, библиотеку ORM на питоне. И я использовал для доступа к базе данных непосредственно из бизнес-уровня напрямую, вызывая SqlAlchemy API.Как организовать уровень доступа к базе данных?
Но тогда я обнаружил, что это вызовет слишком много времени для запуска всех моих тестовых примеров, и теперь я думаю, что, возможно, мне нужно создать слой доступа к БД, поэтому я могу использовать макет объектов во время теста, а не напрямую обращаться к базе данных.
Я думаю, что есть 2 варианта сделать это:
использовать один класс, который содержит соединение с базой данных и множество методов, как AddUser/delUser/updateUser, addBook/delBook/updateBook. Но это означает, что класс будет очень большим.
Другой подход - создать различные классы менеджеров, такие как «UserManager», «BookManager». Но это означает, что мне нужно передать список менеджеров в Business layer, что кажется немного громоздким.
Как организовать слой базы данных?
Привет, потому что некоторые из моих коллег настаивают на том, что мы должны использовать процедуру хранения, и я не имею никакого контроля над этим, поэтому sqlite не является возможным выбором для меня. – ablmf
BTW: sqlite не поддерживает процедуру хранения. – ablmf
Hm. Это означает, что вам придется издеваться над значительными частями кода (хранимые процедуры). Это сделает тесты намного менее полезными. Трудная ситуация. –