mysql数据库和多个用户

时间:2013-09-30 05:11:59

标签: php mysql

我正在开发一个拥有多个用户的网站。总共说5个用户。我需要确定的是,每个用户只能访问他们输入的数据。

想想CRM或工作委员会。所以john只能访问johns信息,编辑,添加等。与jane和june相同。

现在,如果我的阅读是正确的,我需要做的就是确保查询仅根据其唯一ID正确提取数据?

因此用户的数据库表如下所示:

Database: xxxxx, Table: xh_user
user_id 
user_username
user_fname
users_email
users_password 
users_salt

所以如果johns user_id是7,那么当他登录时,它会查询他的id并仅显示他在数据库中的内容。

我对此是否正确?或者是否有不同或更好的方法来实现这一目标?

4 个答案:

答案 0 :(得分:0)

只要您的外键设置正确,以便数据链接到user_id (PK),那么它应该没问题。或者,您可以设置包含访问权限的user_roles表。

答案 1 :(得分:0)

据我所知以及我如何编程,是的。如果您正在寻找额外的安全性,可以根据数据库中的内容检查用户的密码/ salt。

答案 2 :(得分:0)

  

我需要做的是确保查询仅根据其唯一ID

提取数据

我不确定你的意思是什么,但它是一般的/广泛的陈述,无论是坏的还是好的。这实际上取决于您正在构建的系统。这绝不是一般适用的声明。

现在,在您当前的设置中,这看起来有点正确,但从长期来看,您可能需要公开一些数据,或者至少可以由多个人访问。这在您当前的设计中是不可能的。

我会分割访问权限和内容,因为它们是分开的东西。保存用户(或查找基于角色的模式)可以访问单独表中的数据,这样您就可以构建以后的内容,并添加多个用户功能。

这可能会成为一个长时间的讨论,所以我将以此结束:所有数据库设计的底线是,您应该以表示逻辑单位的方式保存您的信息,就像在现实世界中一样(是的,我我在这里采取一些捷径。因此,将用户名与id绑定似乎很正常。但是,在作业和用户之间建立连接本身并不合乎逻辑。多个用户可以看到工作,没有汗水。或者更多的用户可以添加信息。您可以说只有一个用户是作业或任何其他数据的“所有者”,但似乎限制太多,无法使您的访问控制完全取决于“拥有”数据的人。

但话又说回来,这只是对未来的警告。如果你从来不需要这个,你就不需要。

答案 3 :(得分:0)

您可以有多个数据库,每个用户一个。不过,您将需要一种方法来进行架构更改和升级,例如phinx。除非您预见到用户拥有自己帐户上的多个用户,否则我不建议这样做。