Php 面向集团和企业的用户管理系统方法
我正在创建一个用户管理系统,需要您的建议 3个实体:Php 面向集团和企业的用户管理系统方法,php,mysql,user-management,Php,Mysql,User Management,我正在创建一个用户管理系统,需要您的建议 3个实体: 使用者 坚定的 团体 每个用户将属于一家公司。 某些用户(并非全部)可能属于组。 集团是公司的组合。(例如,一个集团中有3家公司) 数据将根据用户的公司或集团显示,如果用户属于公司(但不是集团),则将显示公司级别数据。如果用户属于集团,则将显示集团级别数据(例如3家公司的数据) 我下面提到的方法是否正确 CREATE TABLE `user_account` ( `id` int(11) NOT NULL AUTO_INCREMENT,
用户
将属于一家公司
。
某些用户(并非全部)可能属于组
。
集团
是公司
的组合。(例如,一个集团中有3家公司)
数据将根据用户的公司
或集团
显示,如果用户
属于公司
(但不是集团
),则将显示公司
级别数据。如果用户
属于集团
,则将显示集团
级别数据(例如3家公司的数据)
我下面提到的方法是否正确
CREATE TABLE `user_account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firm` varchar(45) DEFAULT NULL, # each user belong to a client firm
`group` varchar(45) DEFAULT NULL, # some users may belong to client group
`name` varchar(45) DEFAULT NULL,
`username` varchar(15) NOT NULL, # USER ID
`password` varchar(255) NOT NULL,
`email` varchar(40) NOT NULL,
`account_creation_date` datetime DEFAULT NULL,
`active` tinyint(1) DEFAULT '1',
`token_code` varchar(255) DEFAULT NULL, # for password recovery
`token_creation_date` datetime DEFAULT NULL, # for password recovery
PRIMARY KEY (`id`),
UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `permission` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL, # FOREIGN KEY user_account.user_name
`association` varchar(45) DEFAULT NULL, # Firm or Group
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我不会这么做的。用户属于公司。公司属于集团。一家公司可以属于多个集团吗?请注意,组是一个保留字,这使得它成为表/列标识的一个令人恼火的选择。您可能明智地使用实体(人员、公司、组)和关系来设计它。你可以读一下。您可能会发现MySQL工作台是一个有用的设计工具。专业提示:在设计桌子时,再小心也不为过。在编程时,你每花一分钟的努力就可以节省你的时间。
group
,你是对的。我现在使用的模式有一个同名的表。让我发疯。几乎疯狂到让所有匈牙利人称之为group\u t
@草莓每个公司都属于某个集团,但一个公司不可能属于多个集团。如果你不是这样做的,那么你认为最好的方法是什么?基本上是:一张用户表和一张公司表。