Separare i client per database ha senso: sicurezza, gestire in modo univoco backup / ripristini, personalizzazioni.
Avere ciascuna posizione sotto uno schema separato ti darebbe dei modi per: raggruppare oggetti, sicurezza ed eventualmente gestire backup separati, ma a meno che tu non veda altri modi per ottenere questa separazione, penso che rendere le query e la manutenzione inutilmente difficili.
Sembra più facile avere posizioni gestite dai dati. Puoi sempre gestire la sicurezza della selezione dei record disponendo di una tabella di sicurezza che indica le posizioni a cui un utente può accedere.
Potresti ritenere che ci siano poche query / rapporti che combinano le posizioni in questo momento, ma una volta che un cliente riceve un rapporto che esegue questa operazione, ne vorranno di più. Questi clienti di solito pagano commissioni di licenza più elevate e eserciteranno ulteriore pressione sul team di vendita (il che comporterà una pressione ancora maggiore sul team di sviluppo.)