Это не вопрос дизайна базы данных. Это организационный вопрос. Организационные аспекты этого вопроса гораздо важнее технических вопросов.
Ответ: все, что делает жизнь простой для вас, как разработчики
Например, вы говорите:
Некоторые новые (ASP.Net-) Проекты должны иметь доступ к этим данным тоже.
Насколько интегрированы эти проекты с вашим проектом? Вы действительно обмениваетесь данными (или пишите в одни и те же таблицы)? Например, если вы вносите изменения в одну из своих таблиц, вам нужно вносить изменения в код в других проектах одновременно? (Иногда очень сложно синхронизировать между двумя проектами).
Если вы фактически не обмениваетесь данными (кроме данных клиента, которые, как я полагаю, эффективно доступны для чтения), используйте отдельные базы данных (схемы OR). Это значительно облегчает управление.
Еще один трюк заключается в том, чтобы иметь в каждой базе данных множество представлений данных клиента, которые живут в другом месте, в другой схеме.
Итак, у вас есть база данных для каждого проекта, с представлениями в каждой базе данных на данные клиента, которая живет в одной отдельной базе данных.
Производительность не должна быть проблемой, если только базы данных не находятся на разных машинах.
До сих пор я был «единственным» разработчиком на моих предыдущих работах. Следовательно, мы создали базу данных для каждого проекта, и они никогда не были связаны друг с другом. Но теперь я должен поддерживать существующую огромную базу данных. Поскольку каждый новый проект каким-то образом связан с нашими RM2-Data, я уже добавил в него новые таблицы, но задавался вопросом, правильно ли это (логически/ремонтопригодность/производительность). Я должен рассмотреть возможность создания точек 1,2 и 3. Я не знал о том, что перекрестная db-ссылочная целостность не поддерживается. Спасибо за добавление этих вопросов. –