В ориентированном на базу данных приложении, предназначенном для нескольких клиентов, я всегда думал, что "лучше" использовать единую базу данных для ВСЕХ клиентов - связывание записей с надлежащими индексами и ключами. При прослушивании подкаста Stack Overflow, я слышал, что Джоэл упоминает, что FogBugz использует одну базу данных для каждого клиента (поэтому, если бы было 1000 клиентов, было бы 1000 баз данных). В чем преимущества использования этой архитектуры?
Я понимаю, что для некоторых проектов клиентам нужен прямой доступ ко всем своим данным - в таком приложении очевидно, что каждому клиенту нужна собственная база данных. Однако для проектов, где клиенту не нужно напрямую обращаться к базе данных, существуют ли какие-либо преимущества для использования одной базы данных на клиента? Кажется, что с точки зрения гибкости гораздо проще использовать одну базу данных с единственной копией таблиц. Легче добавлять новые функции, проще создавать отчеты, а просто управлять ими.
Я был довольно уверен в методе "одна база данных для всех клиентов", пока не услышал, что Джоэл (опытный разработчик) упоминает, что его программное обеспечение использует другой подход - и я немного смущен его решением...
Я слышал, что люди ссылаются на то, что базы данных замедляются с большим количеством записей, но любая реляционная база данных с некоторыми достоинствами не будет иметь этой проблемы, особенно если используются правильные индексы и ключи.
Приветствуется любой вход!