2009-07-14 6 views
8

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

Способ, который я вижу, есть несколько вариантов: 1) Есть один набор таблиц базы данных. В каждой таблице укажите столбец «пользователь» или что-то подобное, которое будет отображать каждую строку в соответствующую учетную запись пользователя. 2) Создайте полностью отдельную базу данных для каждого пользователя. Это не похоже на потрясающую идею по соображениям производительности. 3) Создайте отдельную схему для каждого пользователя в одной базе данных. Каждая схема будет содержать таблицы для каждого пользователя.

Как вы справились с этой проблемой? Есть ли вариант, который мне не хватает? Я использую PostgreSQL в качестве моей базы данных, если это имеет какое-то значение в том, как вы справляетесь с этой проблемой.

+0

Возможный дубликат [Невозможно ли назначать базу данных MySQL каждому пользователю на моем сайте?] (Http://stackoverflow.com/q/327787/90527). – outis

ответ

6

Я почти всегда уходил с вариантом №1. Если вы правильно его разработали, вам может понадобиться только ваш «пользовательский» столбец в нескольких ключевых таблицах, которые являются вашей точкой входа, а затем все остальные могут быть объединены с этими ключевыми таблицами.

5

Как правило, вы почти никогда не хотите иметь несколько таблиц (или баз данных) с идентичными структурами. Если вы обнаружите, что рассматриваете создание отдельных таблиц stuff_for_user_a и stuff_for_user_b (что очень похоже на ваши варианты # 2 и # 3), то вы, вероятно, захотите просто создать таблицу stuff, которая содержит столбец user (т. Е. Ваш вариант # 1).

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

  • Нет связанных вопросов^_^