На более глубоком логическом уровне в ваших приложениях существуют данные. Именно данные, их структура, правила их трансформации (из исходных в производные) и определяют одно у вас приложение или два. Если у вас в этой одной базе данные организованы так, что их логически нельзя разделить на "внутренние" и "для клиентов" - то у вас не два приложения, а одно, просто имеет два разных UI.
Например, в интернет-магазине есть личный кабинет клиента и админка менеджера по отправке. UI разные, но они оба делают выборку по заказам клиентов.
Как это может выглядеть в зонтичном проекте (по трёхтировой схеме):
apps
customer_ui
admin_ui
application
persistence
application содержит контроль инвариантов согласно бизнес-правилам
persistence - низкоуровневый инфраструктурный слой, экто там или что-то ещё
customer_ui и admin ходят в application за чтобы сделать write или read, в persistence напрямую не ходят.
Вот оно как бы просто в теории, а на практике обнаружится, что админке нужно делать какие-то свои выборки, а лк клиента - свои. И в application/persistence начнут появляться методы для этих выборок. А потом, спустя N месяцев уже непонятно будет, зачем существуют те или иные методы. В репозиториях будет по 10 тысяч строк. И тогда начнёшь думать, что может и лучше чтобы админка и лк клиента сами ходили в персистенцию - так хоть понятно было бы, какой код за какой кусок логики отвечает.
Так что ответ зависит от размера приложения. Можно и так и эдак. Первичны всегда данные - если их нельзя логически разделить на две разных базы - у вас одно приложение, а не два.