2010-04-03 5 views
0

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

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

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

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

ответ

1

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

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

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

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

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

+1

Вначале я ищу, возможно, 100 пользователей и постоянно новых пользователей, например. свободных пользователей. Основываясь на вашей рекомендации, означает ли это, что мне просто нужна база данных по умолчанию для сайта портала для хранения основной информации об учетных записях, а затем для разделения баз данных для отдельной учетной записи? –

+0

Конечно, это звучит разумно. –

+0

Как насчет того, нужно ли хранить членов всех учетных записей пользователей? Так что, если мы говорим о блогах в Wordpress mu, например. Скажем, если у меня есть посетитель, A, который станет членом/автором для пользователя учетной записи пользователя abc, а также желает зарегистрироваться с помощью xyz. A нужно будет зарегистрировать с помощью abc, а затем перерегистрировать с помощью xyz, так как нет связи между двумя пользователями, поскольку они используют разные базы данных? Каковы были бы плюсы и минусы, чтобы помещать членов в базу данных портала по умолчанию, так что им нужен только один идентификатор для входа и доступа или оставить их в базе данных отдельных учетных записей? Благодарю. –

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