【问题标题】:How to make session to allow different project?如何进行会话以允许不同的项目?
【发布时间】:2010-12-15 12:30:27
【问题描述】:
我打算用 PHP/MySQL/Codeigniter 做一个项目管理。
它将有 10 - 20 个用户和 20 - 30 个项目同时进行。
假设 John 是 A、B 和 C 项目的成员。Cindy 在 A、D、F G 等。
我想让它只有项目成员才能访问该项目。
现在我不确定如何处理这个问题。
您对数据库设计和会话有何建议。
任何资源将不胜感激。
【问题讨论】:
标签:
php
mysql
database-design
session
codeigniter
【解决方案1】:
如果您不想使用框架解决方案:
拥有 User、Project 和 UserProject 表。
对于用户所在的每个项目,UserProject 表将在一行中包含 UserID 和 Project ID。
-
创建会话时,您可以从 UserProject 表中拉取哪些项目是允许的(例如,将它们放入一个数组中,以便在显示导航时进行搜索)。
李>
另外,每个项目都可以有一个用户设置为管理员,可以添加其他用户。
【解决方案3】:
至于会话存储,我可以推荐 memcached。有一个 PHP 函数可以让您设置自己的会话处理程序。不要将会话保存到真实数据库中。这会增加不必要的开销。
我不能告诉你太多关于数据库设计的信息,因为你的帖子缺乏大量信息。因此我只想说,创建两个表,“用户”和“项目”。 “用户”由列 ID、名称和电子邮件组成。项目由列 ID、用户 ID(如果 DBMS 支持,则为外键)、名称等组成。