Secondo me la cosa migliore è che tu racchiuda tutta la logica di interazione diretta con il db in un progetto di API, che poi chiami da qualsiasi punto della tua webapp (e da qualsiasi altra app, mobile o desktop o non so), questo ti permette di essere anche molto più svincolato se domani decidi, per esempio, di usare Angular per il layout, inoltre ti permette di implementare n API che non è detto che tutte le applicazioni possano o richiedano di utilizzare.

Se inoltre implementi (non è proprio immediato e semplice...) l'architettura DDD (Domain Driven Design) hai praticamente un'applicazione complessa che segue una logica fondamentalmente di MVVM, grandissimo vantaggio nel momento in cui vuoi utilizzare parti esistenti in nuovi progetti