Расширяемая схема базы данных - PullRequest
3 голосов
/ 21 июня 2010

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

Нашей главной целью для новой схемы базы данных является расширяемость. Я не являюсь опытным разработчиком баз данных, поэтому требую от экспертов:).

Я думаю о подходе к таблице добавочных (сестринских) таблиц. Для каждой основной таблицы может быть дочерняя таблица, в которой будут находиться расширенные поля. Таким образом, мы можем разработать отдельный постоянный уровень для таблиц ядра и расширений.

Что, если я разделю его на две базы данных. Основные и дополнительные базы данных. Это облегчит обслуживание.

Ответы [ 2 ]

1 голос
/ 23 июня 2010

В PostgreSQL вы можете иметь унаследованные таблицы. Например, если у вас есть таблица A, которая содержит столбцы (x, y, z), вы можете иметь таблицу A-sub-1, которая наследуется от A, но также добавляет столбцы (i, j, k) и таблицу A-sub-2 вместо этого добавляются столбцы (d, e, f).

Одним из преимуществ этого является то, что некоторые из ваших операторов SELECT могут оставаться прежними: SELECT от родительского элемента также выбирает из всех дочерних таблиц по умолчанию. Те оценки, которые используют только общие элементы, не нужно менять. Инструкции INSERT / UPDATE / DELETE необходимо будет настроить для соответствия конкретной производной таблице.

Имейте в виду, что здесь необходимо платить за то, что PK и FK не могут быть применены к общей структуре. Каждая унаследованная таблица по-прежнему является самостоятельной таблицей и обрабатывает свои собственные ограничения. То есть у вас не может быть PK или FK на родительской таблице, и он также автоматически применяется ко всем дочерним элементам.

1 голос
/ 21 июня 2010

Создание отдельных баз данных не позволит вам использовать стандартную ссылочную целостность с использованием PK и FK.Это также повышает удобство обслуживания.

Если СУБД поддерживает схемы, вам следует воспользоваться несколькими схемами в одной базе данных.

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

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