Когда создать новую базу данных - PullRequest
0 голосов
/ 12 июля 2010

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

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

Ответы [ 3 ]

3 голосов
/ 12 июля 2010

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

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

Я полагаю, что это, возможно, и ответило на ваш вопрос.; -) * 1 021 *

1 голос
/ 12 июля 2010

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

Ответ: все, что облегчает жизнь вам как разработчикам

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

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

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

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

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

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

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

0 голосов
/ 12 июля 2010

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

...