2012-04-12 38 views
1

我正在为使用php,mysql和javascript的母亲制作一个半简单的web应用程序。mysql/php网页中的用户访问管理

她是一位老师,这将允许她管理她的课程计划的各个组成部分。 对于每个组件都有一个表,对于每个可以包含另一个组件的组件,都有另一个表来保存关系。 (该表类型有两列,每列都有相关表的外键)

我差不多完成了,但她现在想让她的朋友使用它,我并不在乎SQL注入过多,但我想实现用户控制,以便只有创建组件的用户才能查看和编辑该组件。

我也希望他们能够制作公共组件,以便用户可以将组件复制到他们自己的数据集中。

我的问题来实现用户控制,我应该让每个用户,有自己的数据库瞬间,还是应该每个表都有对公共/私人身份拥有者列和列,或者是没有办法,我都没有想到另一种选择的。

我看到的一个问题是,在创建组件之间的关系时需要额外的mysql查询,因为我需要检查两个组件用户标记是否与当前用户匹配。

任何意见/建议是有益的

更新使用的唯一的人/访问,这将是其他教师,将要开发自己的教案

+0

她的朋友们,你的意思是说他们会成为老师和他们自己的课程计划,或者是会查看她的用户吗?在关系方面有很大的不同。 – tcole 2012-04-12 02:50:46

+0

只有其他老师会看到这个,他们会用它来开发/组织他们的课程计划 – 2012-04-12 03:04:00

回答

0

我一定会在同一个数据库内实现这个。在这种情况下,为每个用户设置不同的数据库并不是一个好的解决方案。例如,想想如果每个用户的数据位于单独的数据库中,您将如何构建搜索功能将会冲突UID。这将是一场噩梦。单独的数据库在每个数据库为单独的应用程序提供服务的情况下工作,并且不同数据库中的数据之间的关系恰好为零。

这样就带你了解如何实现它。这将取决于你的模型。每个课程计划是否只有一个,例如,只有一个拥有者?如果是这样,那么将该信息添加到组件表中可能会有效。否则,您可能需要一个单独的表来定义所有权,从而访问不同的组件。无论哪种方式,我都会确保访问逻辑已解耦并封装在您的应用程序中,以确保您可以在将来进行更改。想象一下,例如,你从一个简单的单一所有者模型开始,但是网站的增长和增长很快就会有一群人需要对组件进行所有权/编辑访问。

+0

我最终这样做了,谢谢你的反馈! – 2012-04-15 21:53:46