Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql数据库与多用户_Php_Mysql - Fatal编程技术网

Php mysql数据库与多用户

Php mysql数据库与多用户,php,mysql,Php,Mysql,我正在一个有多个用户的网站上工作。假设总共有5个用户。我需要确保的是,每个用户只能访问他们输入的数据 想想CRM或工作板。因此,约翰只能访问约翰的信息、编辑、添加等。简和琼也是如此 现在,如果我的读数是正确的,我需要做的就是确保查询只提取基于其唯一id的数据正确吗 因此,用户的数据库表如下所示: Database: xxxxx, Table: xh_user user_id user_username user_fname users_email users_password users_s

我正在一个有多个用户的网站上工作。假设总共有5个用户。我需要确保的是,每个用户只能访问他们输入的数据

想想CRM或工作板。因此,约翰只能访问约翰的信息、编辑、添加等。简和琼也是如此

现在,如果我的读数是正确的,我需要做的就是确保查询只提取基于其唯一id的数据正确吗

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

Database: xxxxx, Table: xh_user
user_id 
user_username
user_fname
users_email
users_password 
users_salt
因此,如果johns user_id为7,当他登录时,它会查询他的id并只显示数据库中的内容


我说的对吗?还是有其他或更好的方法来实现这一点?

只要外键设置正确,数据链接到
用户id(PK)
,就可以了。或者,您可以设置一个包含访问权限的
user\u roles
表。

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

我需要做的是确保查询只提取基于其唯一id的数据

我不知道你这是什么意思,但这是一个太笼统的说法,不是好就是坏。这实际上取决于你正在构建的系统。这绝不是一个普遍适用的声明

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

我会将访问和内容分开,因为它们是分开的。在单独的表中保存哪些用户(或查找基于角色的模式)有权访问哪些数据,以便您可以在以后拥有的基础上进行构建,并添加多个用户功能

这可能会成为一个漫长的讨论,因此我将以以下内容结束:所有数据库设计的底线是,您应该以表示逻辑单元的方式保存信息,就像在现实世界中一样(是的,我在这里选择了一些快捷方式)。因此,将用户名与id耦合似乎很正常。但是在作业和用户之间建立联系本身并不是那么合乎逻辑。一个作业可以对多个用户可见,无需担心。或者多个用户可能已经添加了信息。您可以说只有一个用户是作业或任何其他数据块的“所有者”,但这似乎限制太多,无法让您的访问控制完全由谁“拥有”数据


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

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

是的,这是正确的。但请确保在后端使用登录人的id,可能使用会话,而不是url。这样,任何登录的用户都可以更改url中的id并查看其他用户的数据。非常感谢。我计划使用会话。从我所读到的信息来看,它更安全。但这不是额外的安全性,这是任何登录的基础,不是吗?这就是最原始的安全性。“额外的安全措施是我的另一个错误,”我在思考之前写道,“我想我明白我们的意思了。”。我现在做的是找工作。这是一种跟踪提交给公司的申请、联系人(即招聘人员)、上传简历的能力等的方法。因此,除了页面、仪表板、联系人应用程序页面等之外,每个页面都需要提取特定用户的数据并显示。因此,您当前拥有的似乎很好,因为您当前显示的是一个具有耦合数据的用户。但是一旦一个用户有几个工作,或者一个工作属于一家公司,或者属于一个人力资源团队,如果你依赖“唯一id”(单个!)而不是更复杂的系统,你就会遇到麻烦。没有现成的接入系统可以对我可以链接到的每个案例进行访问控制,只需记住您将来可能需要哪些功能:)好吧,现在您让我担心了。假设约翰有8份工作,但六月只有3份。那么使用一个唯一的id是行不通的?不,当然,但是如果约翰和琼都在“大公司”工作,他们都应该被允许看到所有11份工作呢?那你就不能把ID.bare带在身上,因为我正在浏览网站的帮助文件,想知道这个评论是如何工作的!:)多个数据库?真的吗?是的,例如,一个允许你改变每个用户模式的程序,许多CRM都这样做,比如salesforce或Odoo,这两个最流行的程序。这看起来很可能超出了这个问题的范围。你的答案对于挖掘一个非常古老的问题来说并没有多大帮助。。。。