Why every company gets its own database
The usual way to build this is one database with a company column on every row, and a filter that has to be applied correctly in every query, forever. It works right up until somebody forgets one.
We give every customer their own database and their own deployment instead. It is more work for us — each new customer is a real deployment rather than a row — and it means there is no query anywhere that could return two companies’ data, because there is no connection that can see both.
