2010-07-12 5 views
0

У меня есть общий вопрос по дизайну базы данных. Когда лучше создать новую базу данных вместо добавления новых таблиц в существующую? Этот вопрос связан с проектированием/ремонтопригодностью и проблемами с производительностью.При создании новой базы данных

Фон: мы отражаем основные таблицы нашего клиента, импортируя данные каждую ночь в нашу БД под названием RM2. Некоторым новым (ASP.Net-) проектам также нужен доступ к этим данным, теперь мне интересно, следует ли создавать новые базы данных для каждого проекта или объединять их таблицы с RM2 (текущий размер: 37991,94 МБ).

ответ

3

не обязательно ответит на ваш вопрос, но я дам вам кучу других вопросов, чтобы рассмотреть также:

  1. Когда я должен добавить файлы в файловую группу в моей базе данных? - Когда файлы становятся слишком большими, где «слишком большой» может быть вопросом мнения.
  2. Когда следует добавить новую файловую группу в мою базу данных? - Если вы хотите оптимизировать использование диска для различных операций с базой данных.
  3. Когда следует добавить новую схему в мою базу данных? - Когда у вас есть набор объектов, которые логически связаны и могут потребовать разные разрешения по умолчанию для пользователей.
  4. Когда я должен добавить новую базу данных в свое приложение? - Если вам не нужна какая-либо ссылочная целостность между любыми таблицами в двух базах данных. Если вы не хотите разрешать какие-либо права, связанные с правами собственности, пересекать два набора объектов. Если вы хотите самостоятельно выполнять резервное копирование и восстановление. Если вам нужны разные модели восстановления SQL Server для двух наборов данных.

Я думаю, что, возможно, ответили на ваш вопрос. ;-)

+0

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

0

Вы можете получить другую базу данных для проектов, если какой-либо проект хочет использовать только собственную базу данных. Но если вы хотите получить центр данных, вы должны создать для него другую общую базу данных + собственную базу данных для каждого проекта.

1

Это не вопрос дизайна базы данных. Это организационный вопрос. Организационные аспекты этого вопроса гораздо важнее технических вопросов.

Ответ: все, что делает жизнь простой для вас, как разработчики

Например, вы говорите:

Некоторые новые (ASP.Net-) Проекты должны иметь доступ к этим данным тоже.

Насколько интегрированы эти проекты с вашим проектом? Вы действительно обмениваетесь данными (или пишите в одни и те же таблицы)? Например, если вы вносите изменения в одну из своих таблиц, вам нужно вносить изменения в код в других проектах одновременно? (Иногда очень сложно синхронизировать между двумя проектами).

Если вы фактически не обмениваетесь данными (кроме данных клиента, которые, как я полагаю, эффективно доступны для чтения), используйте отдельные базы данных (схемы OR). Это значительно облегчает управление.

Еще один трюк заключается в том, чтобы иметь в каждой базе данных множество представлений данных клиента, которые живут в другом месте, в другой схеме.

Итак, у вас есть база данных для каждого проекта, с представлениями в каждой базе данных на данные клиента, которая живет в одной отдельной базе данных.

Производительность не должна быть проблемой, если только базы данных не находятся на разных машинах.

Смежные вопросы