Как сделать сеанс, чтобы разрешить другой проект? - PullRequest
4 голосов
/ 11 ноября 2009

Я планирую сделать управление проектом с помощью PHP / MySQL / Codeigniter.

В нем одновременно будет работать 10-20 пользователей и 20-30 проектов.

Допустим, Джон является участником проектов A, B и C. Синди в A, D, F G и т. Д.

Я хочу сделать так, чтобы только участники проекта могли получить доступ к проекту.

Теперь я не уверен, как подойти к этому.

Что вы предлагаете с точки зрения DB-дизайна и сессии?

Любые ресурсы будут оценены.

Ответы [ 3 ]

4 голосов
/ 11 ноября 2009

Если вы не хотите использовать каркасное решение:

  1. Имеются таблицы User, Project и UserProject.

  2. Для каждого проекта, в котором находится пользователь, таблица UserProject будет содержать идентификатор пользователя и идентификатор проекта в строке.

  3. При создании сеанса вы можете извлечь из таблицы UserProject, какие проекты допустимы (и, например, поместить их в массив, который можно искать при отображении навигации).

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

3 голосов
/ 11 ноября 2009

Вы можете использовать Zend_Acl с Codeigniter или вы можете попробовать EzAuth

1 голос
/ 11 ноября 2009

Что касается хранения сессии, я могу порекомендовать memcached. Существует функция PHP, которая позволяет вам установить свой собственный обработчик сеанса. Не сохраняйте сессии в реальной базе данных. Это добавило бы ненужные накладные расходы.

Я не могу рассказать вам много о дизайне базы данных, так как в вашем посте недостаточно содержательной информации. Поэтому я бы просто сказал, создать две таблицы, «Пользователь» и «Проект». «Пользователь» состоит из идентификаторов столбцов, имени и электронной почты. Проект состоит из идентификатора столбцов, идентификатора пользователя (внешний ключ, если поддерживается СУБД), имени и т. Д.

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