Предположим, что не существует штрафа за масштабирование для хранения всех клиентов в одной базе данных; для большинства людей и хорошо настроенных баз данных / запросов это будет справедливо в наши дни. Если вы не один из этих людей, тогда польза от единой базы данных очевидна.
В этой ситуации выгода от инкапсуляции каждого клиента. С точки зрения кода, каждый клиент существует изолированно - нет никакой возможной ситуации, в которой обновление базы данных могло бы перезаписать, повредить, извлечь или изменить данные, принадлежащие другому клиенту. Это также упрощает модель, поскольку вам не нужно учитывать тот факт, что записи могут принадлежать другому клиенту.
Вы также получаете преимущества отделимости - тривиально вытащить данные, связанные с данным клиентом, и перенести их на другой сервер. Или восстановите резервную копию этого клиента при вызове со словами «Мы удалили некоторые ключевые данные!», Используя встроенные механизмы базы данных.
Вы получаете простую и бесплатную мобильность сервера - если вы превосходите один сервер базы данных, вы можете просто разместить новых клиентов на другом сервере. Если бы все они были в одной базе данных, вам нужно было бы либо получить более качественное оборудование, либо запустить базу данных на нескольких компьютерах.
Вы получаете простое управление версиями - если один клиент хочет остаться с версией программного обеспечения 1.0, а другой хочет 2.0, где 1.0 и 2.0 используют разные схемы базы данных, проблем нет - вы можете перенести одну из них, не вытаскивая их из одной базы данных .
Я могу придумать еще несколько десятков. Но в целом, ключевым понятием является «простота». Продукт управляет одним клиентом и, следовательно, одной базой данных. Проблема «Но база данных также содержит других клиентов» никогда не усложняется. Это соответствует ментальной модели пользователя, где они существуют в одиночку. Преимущества, такие как возможность легко создавать отчеты по всем клиентам одновременно, минимальны - как часто вы хотите получать отчеты по всему миру, а не по одному клиенту?