Вы должны (строго!) Проверить производительность приложения для своего приложения по обеим моделям (отдельной схеме и отдельной базе данных). Если одно окажется неприемлемым, переходите к другому. С очевидным сказанным, единственная действительно убедительная причина использовать одну форму поверх другой, связана с описанными вами «дополнительными» функциями. Если это может быть «надстройка» для нескольких разных систем, если вы хотите, чтобы один установленный надстройка использовался всеми установленными и поддерживаемыми «базовыми» приложениями, то вам бы очень хотелось, чтобы эта функциональность была инкапсулирована в его собственный экземпляр базы данных, так что он может быть доступен для всех / всех таких экземпляров.
Точно так же, как упражнение на мысль, если вы хотели (или имели), чтобы функциональность надстройки была сохранена только в «первом» экземпляре приложения, с этим кодом, на который ссылаются все впоследствии установленные экземпляры, решение, поддерживающее его, может основываться на синонимах (введено в SQL 2005). После установки «базового» приложения необходимо будет выполнить проверку, чтобы определить, где и где был найден «дополнительный» код, и если он будет найден, будут созданы необходимые синонимы, ссылающиеся на его базу данных хостинга. Аналогичная процедура установки потребуется для установки дополнения, чтобы идентифицировать и обновить все поддерживаемые базы данных. (Это интригующая идея, но отдельная база данных будет лучшим решением в отношении долгосрочного обслуживания и управления.)