CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`username` varchar(100) NOT NULL,
`password` text NOT NULL,
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
INSERT INTO `users` (`user_id`, `first_name`, `last_name`, `username`, `password`, `create_at`) VALUES
(1, 'ali', 'qorbani', 'aliqorbani', '63bed66f3d9dcd13440490d90738f816', '2018-07-28 08:34:01'),
(2, 'mohammad', 'ahmadi', 'mohammad', '316946a88ad51d75465c4c0b1e4a066a', '2018-07-28 08:34:01');
CREATE TABLE IF NOT EXISTS `user_groups` (
`group_id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(100) NOT NULL,
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`group_id`),
KEY `group_id` (`group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
INSERT INTO `user_groups` (`group_id`, `group_name`, `create_at`) VALUES
(1, 'superadmin', '2018-07-28 08:35:56'),
(2, 'admin', '2018-07-28 08:35:56'),
(3, 'moderator', '2018-07-28 08:36:12'),
(4, 'customer', '2018-07-28 08:36:12');
CREATE TABLE IF NOT EXISTS `user_roles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `user_id` (`user_id`),
KEY `group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `user_roles`
ADD CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `user_roles_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `user_groups` (`group_id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
你的模型代码是这样的。 //用户模型
public function add($data){
$this->db->insert('users',$data);
return true;
}
public function update($data,$id){
$this->db->where('user_id',$id);
$this->db->update('users',$data);
return true;
}
public function add_user_roles($user_id,$roles = array()){
$this->db->where('user_id',$user_id);
$this->db->delete('user_roles');
foreach ($roles as $role){
$this->db->insert('user_roles',['user_id'=>$user_id,'group_id'=>$role]);
}
return true;
}
3条答案
按热度按时间bt1cpqcv1#
数据库表示例:
你的模型代码是这样的。
//用户模型
controlleredit方法的示例如下:
elcex8rz2#
这是我的(post,post\u tax,post\u tax\u relation)表截图。我想它能帮助你满足你的需要。记住
create
,update
用户您必须更新关系表(我的意思是删除所有关系引用该用户,并在每次更新时创建新的关系)。k10s72fa3#
再也不要用这种方法了!创建两个不同的表(用户、用户组)。向用户表添加列
group_id
然后使用join
函数获取主题有关详细信息,请参见此链接如果你不明白,请把你的表格数据贴在这里,我会帮你:-)