我目前正在努力改进我的数据库,以便为增长腾出空间。目前来看,不同的用户对网站的不同区域有不同的“权限”。某些用户拥有访问网站多个区域的权限。
如果我以最有效的方式做这件事,我希望得到一些反馈:
tblUsers:
usrID usrFirst usrLast phone //etc....
1 John Doe
2 Jane Smith
3 Bill Jones
tblAreas:
id name
1 Marketing
2 Support
3 Human Resources
4 Media Relations
tblPermissions:
id usrID areaID
1 1 2
2 1 4
3 2 1
4 3 3现在,对于每个“区域”,我都有单独的目录。但是,我想将所有这些目录最小化到一个主目录,然后根据用户的权限将用户重定向到他们适当的“区域”。
这听起来像是我做得对吗?我从来没有创建过具有不同权限和不同人群的多层站点,因此,我当然愿意学习更多关于如何正确操作的知识。
非常感谢!
发布于 2009-09-12 17:10:11
总体设计还可以。突然出现在我身上的问题与命名有关。
根据您的编程语言和数据库,我还建议您对表/列名使用下划线而不是大写。
至于对不同的组使用不同的目录,我建议不要这样做。在代码中进行安全检查,而不是在目录布局中。
推理:
当有人决定也允许支持人员做一些营销工作时,会发生什么?您是应该更改代码,还是应该在数据库中添加记录?
或者,如果您有重叠的操作怎么办?
@brianpeiris:有几件事浮现在脑海中:
上使用(foo_id)而不是JOIN的
发布于 2009-09-12 15:42:45
模式看起来很好。
我建议您将访问控制放在控制器中,并将其作为URL路径的基础,这样您就不会将其编码到每个部分中。
发布于 2009-09-16 05:42:53
是的,这似乎从数据库端完美地满足了您的需求。
挑战将是尽可能简单和声明地使用数据。哪里是正确的地方来声明你所在的“区域”?是每个页面都这样做,还是有一个计算它的函数,或者你的控制器可以这样做?就像有人说的那样。第二部分是根据这一点评估当前用户。理想情况下,你可以使用一个像"security_check_for_area(4)“这样的函数来完成所有的任务。
https://stackoverflow.com/questions/1415372
复制相似问题