-2

我有一个用于执行管理功能的项目,所以我的问题是这个。我会尽量说清楚。我将有一个超级用户来更新其他普通用户/人(作为我们的客户)的所有信息。客户/普通用户登录时只会看到他们的信息和下载由超级用户上传的文件,而普通用户看不到。

因此,如果您是 Client:#01,您将看到仪表板(欢迎页面)和您的信息。任何人都可以为此建议可能的数据库设计。如何在用户和文件表之间使用左/右 sql-joins?

更新

我有一个用户表以及用户所属的公司表。所以本质上我想要这样的东西::

$sql = 选择用户表中的所有用户名并将 = 传递给给定的表单,然后将该用户名左或右加入他所属的公司。

然后他们会看到他们的信息。如果登录成功。因为用户 #01 属于公司 #03 /#01 等... USER TABLE 看起来如此

`id` int(11) NOT NULL AUTO_INCREMENT,
`fname` varchar(50) NOT NULL,
'lname` varchar(100) NOT NULL,
`username` varchar(50) ,
`password` varchar(100) ,
`company`  varchar(50) // the company name that ther user belongs to
PRIMARY KEY (`id`)

公司表

'id' int(11) not null auto_increment,
'user_id' int(11) //This is to tie the users to this table
'description' varchar(text),
'filename' varchar(25) not null,
'mimetype' varchar (25) not null
PRIMARY KEY ('id')
4

1 回答 1

0

好吧,这取决于您想要多简单或多复杂。有了这样的东西,我通常会保持相对简单,并有一个主用户数据库(适用于所有用户)示例:

  CREATE TABLE IF NOT EXISTS `user` (
    `user_id` int(255) NOT NULL AUTO_INCREMENT,
    `user_name` varchar(50) NOT NULL,
    `user_pass` varchar(100) NOT NULL,
    `user_permissions` tinyint(1) NOT NULL DEFAULT '0',
    `active` tinyint(1) NOT NULL DEFAULT '1',
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
  ) ENGINE=MYISAM;

然后我可能会有第二张权限表,具体取决于我将拥有多少权限。如果您将拥有的只是用户和超级用户,那么您可能只需为用户分配值 0,然后为超级用户分配值 1。

然后在您的 PHP 脚本中,它会根据用户的“user_permissions”值来区别对待用户。

现在,如果您打算拥有许多不同级别的权限,那么我肯定会再创建至少一个表来定义权限示例:

  CREATE TABLE IF NOT EXISTS `permission` (
    `permission_id` int(255) NOT NULL AUTO_INCREMENT,
    `permission_name` varchar(100) NOT NULL,
    `permission_value` int(10) NOT NULL,
    PRIMARY KEY (`id`)
  ) ENGINE=MYISAM;

然后在权限表中,您可以分配各种不同的权限...读取、写入、发布、管理员、普通用户、超级用户等。

这只是一个非常简单的起点。希望有帮助。

于 2012-04-16T16:52:48.653 回答