Дизайн базы данных для сайта нескольких пользователей - PullRequest
0 голосов
/ 03 апреля 2010

Мне необходимо работать над проектом php, который требует, чтобы база данных обслуживала нескольких пользователей. Как правило, идея похожа на то, что они имеют для carbonmade или basecamp, или даже wordpress mu. Они обслуживают несколько пользователей, которые также являются владельцами своих учетных записей. И если они отменят / прекратят свою учетную запись, все на страницах / базе данных будет удалено.

Я не совсем уверен, как мне проектировать базу данных? Должно ли это быть:

  • отдельные таблицы для отдельной учетной записи пользователя
  • отдельные базы данных для отдельной учетной записи пользователя
  • или иначе?

Пожалуйста, посоветуйте мне лучший подход к этому вопросу. Большое спасибо.

1 Ответ

1 голос
/ 03 апреля 2010

Сколько пользователей мы говорим?

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

  • Вы можете сохранить схему (и код своего приложения) простой
  • Если пользователь когда-либо хотел получить копию своей базы данных, вы можете просто выгрузить ее и передать ей
  • Вы можете легко позаботиться о безопасности, ограничив доступ к каждой базе данных определенной учетной записью пользователя
  • Возможно, вам будет проще масштабировать, добавив больше серверов баз данных, поскольку вы используете отдельные базы данных (не будет общих таблиц, используемых всеми пользователями)

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

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

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