1

我正在使用 php、mysql 和 javascript 为我的母亲制作一个半简单的 Web 应用程序。

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

我差不多完成了,但是她现在想让她的朋友使用这个,我不太关心sql注入,但我想实现用户控制,以便只有创建组件的用户才能查看和编辑该组件.

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

我的问题要实现用户控制,我应该让每个用户都有自己的数据库即时,还是每个表都应该有一个所有者列和公共/私有状态列,或者还有其他我没有想到的替代方案。

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

任何反馈/建议都是有帮助的

更新唯一使用/访问它的人将是其他老师,他们将制定自己的课程计划

4

1 回答 1

0

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

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

于 2012-04-15T13:07:35.700 回答