我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL实战:如何设计一个常用的后台管理系统的数据库结构

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL实战:如何设计一个常用的后台管理系统的数据库结构

部分数据来源:ChatGPT  

什么是后台管理系统?

        后台管理系统是指用于管理和维护网站或应用程序的后台界面系统,通常包含用户管理、权限管理、数据管理等功能,能够方便快捷地管理网站或应用程序。常见的后台管理系统有Cms、OA等,下面我们就来介绍如何使用MySQL设计一个常用的后台管理系统。

如何使用MySQL设计一个常用的后台管理系统?

1. 数据库设计

我们首先需要设计一个合适的数据库结构,建立不同的数据表来存放数据。

安装MySQL和Navicat数据库工具后,我们可以登录到MySQL中,选择创建一个数据库:

CREATE DATABASE management_system;

在新建的这个数据库内,我们可以创建用户表(user)、角色表(role)、权限表(permission)、用户角色关联表(user_role)、角色权限关联表(role_permission)等多个数据表。

  • 用户表(user):存储所有的用户信息,包括用户ID、用户名、密码等。
  • 角色表(role):存储所有的角色信息,包括角色ID、角色名称等。
  • 权限表(permission):存储所有的权限信息,包括权限ID、权限名称、权限URL等。
  • 用户角色关联表(user_role):存储用户和角色的关联信息,包括用户ID和角色ID。
  • 角色权限关联表(role_permission):存储角色和权限的关联信息,包括角色ID和权限ID。

如何创建这些数据表和对这些表进行相关操作,下面我们会做更详细的介绍。

2. 数据库表设计

【用户表(user)】

        用户表(user)存储了所有的用户信息,包括用户ID、用户名、密码等。下面是用户表的设计及创建代码:

CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT, -- 用户ID,自动增加  `username` varchar(50) NOT NULL, -- 用户名  `password` varchar(50) NOT NULL, -- 密码  PRIMARY KEY (`id`), -- 设置用户ID为主键  UNIQUE KEY `username` (`username`) -- 设置用户名唯一) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们可以在数据表中插入一些数据,以供后面的操作使用:

INSERT INTO `user` (`id`, `username`, `password`) VALUES(1, 'admin', '123456'),(2, 'user01', '123456');

上述代码就是向用户表中插入了两条数据,id为1的用户为管理员,用户名为admin,密码为123456;id为2的用户为普通用户,用户名为user01,密码为123456。

【角色表(role)】

        角色表(role)存储了所有的角色信息,包括角色ID、角色名称等。下面是角色表的设计及创建代码:

CREATE TABLE `role` (  `id` int(11) NOT NULL AUTO_INCREMENT, -- 角色ID,自动增加  `name` varchar(50) NOT NULL, -- 角色名  PRIMARY KEY (`id`), -- 设置角色ID为主键  UNIQUE KEY `name` (`name`) -- 设置角色名唯一) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们可以在数据表中插入一些数据,以供后面的操作使用:

INSERT INTO `role` (`id`, `name`) VALUES(1, 'admin'),(2, 'user');

上述代码中插入了两个角色,id为1的角色为管理员,名称为admin;id为2的角色为普通用户,名称为user。

【权限表(permission)】

        权限表(permission)存储了所有的权限信息,包括权限ID、权限名称、权限URL等。下面是权限表的设计及创建代码:

CREATE TABLE `permission` (  `id` int(11) NOT NULL AUTO_INCREMENT, -- 权限ID,自动增加  `name` varchar(50) NOT NULL, -- 权限名称  `url` varchar(50) NOT NULL, -- 权限URL  PRIMARY KEY (`id`), -- 设置权限ID为主键  UNIQUE KEY `name` (`name`) -- 设置权限名称唯一) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们可以在数据表中插入一些数据,以供后面的操作使用:

INSERT INTO `permission` (`id`, `name`, `url`) VALUES(1, '查看用户', '/user/list'),(2, '添加用户', '/user/add');

上述代码中插入了两个权限,id为1的权限为查看用户信息,URL为/user/list;id为2的权限为添加用户信息,URL为/user/add。

【用户角色关联表(user_role)】

        用户角色关联表(user_role)存储了用户和角色的关联信息,包括用户ID和角色ID。下面是用户角色关联表的设计及创建代码:

CREATE TABLE `user_role` (  `user_id` int(11) NOT NULL, -- 用户ID  `role_id` int(11) NOT NULL, -- 角色ID  PRIMARY KEY (`user_id`,`role_id`), -- 设置用户ID和角色ID为联合主键  KEY `role_id` (`role_id`), -- 设置角色ID为索引  CONSTRAINT `user_role_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`), -- 设置外键规则,关联用户表  CONSTRAINT user_role_ibfk_2 FOREIGN KEY (role_id) REFERENCES role (id) -- 设置外键规则,关联角色表) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们可以在数据表中插入一些数据,以供后面的操作使用:

INSERT INTO `user_role` (`user_id`, `role_id`) VALUES(1, 1),(1, 2),(2, 2);

上述代码中插入了两条记录,表示id为1的用户为管理员,id为2的用户为普通用户。

【角色权限关联表(role_permission)】

        角色权限关联表(role_permission)存储了角色和权限的关联信息,包括角色ID和权限ID。下面是角色权限关联表的设计及创建代码:

CREATE TABLE `role_permission` (  `role_id` int(11) NOT NULL,     -- 角色ID  `permission_id` int(11) NOT NULL,  -- 权限ID  PRIMARY KEY (`role_id`,`permission_id`), -- 设置角色ID和权限ID为联合主键  KEY `permission_id` (`permission_id`),   -- 设置权限ID为索引  CONSTRAINT `role_permission_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`), -- 设置外键规则,关联角色表  CONSTRAINT `role_permission_ibfk_2` FOREIGN KEY (`permission_id`) REFERENCES `permission` (`id`) -- 设置外键规则,关联权限表) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我们可以在数据表中插入一些数据,以供后面的操作使用:

INSERT INTO `role_permission` (`role_id`, `permission_id`) VALUES(1, 1),(1, 2),(2, 1);

上述代码中插入了三条记录,表示管理员角色有两个权限(查看用户信息和添加用户信息),普通用户角色只有一个权限(查看用户信息)。

3. 数据库表操作

        在建立好数据库和数据表之后,我们需要对表格进行增删改查或修改表结构等操作,下面我们就来详细介绍一下。

【增加数据】

增加数据可以使用INSERT INTO语句,具体示例如下:

INSERT INTO `user` (`username`, `password`) VALUES ('user02', '123456'); -- 插入一条用户数据INSERT INTO `role` ( `name`) VALUES ('visitor');  -- 插入一条角色数据INSERT INTO `permission` (`id`, `name`, `url`) VALUES ('修改用户', '/user/edit');  -- 插入一条权限数据INSERT INTO `user_role` (`user_id`, `role_id`) VALUES (3, 1); -- 插入一条用户角色关联信息INSERT INTO `role_permission` (`role_id`, `permission_id`) VALUES (3, 3);  -- 插入一条角色权限关联信息

上述代码中,分别向用户、角色、权限、用户角色关联和角色权限关联表中插入了一条数据。注意,本文中为了演示简便,有些数据表暂时只有少量数据,实际应用中可能需要更多的数据。

【查询数据】

查询数据可以使用SELECT语句,可以选择列出所有的数据,也可以根据条件筛选数据。下面是查询数据的基本语句:

SELECT * FROM `user`; -- 查询所有用户信息SELECT `id`, `username` FROM `user` WHERE id=1; -- 查询id为1的用户ID和用户名SELECT `name`,`url` FROM `permission` WHERE `id` IN (1,2); -- 查询id为1和2的权限名称和URLSELECT * FROM `user_role_permission`; -- 查询用户角色权限视图中所有记录

【更新数据】

更新数据可以使用UPDATE语句,可以根据条件对数据进行修改。下面是更新数据的示例:

UPDATE `user` SET `password` = 'newpassword' WHERE `id` = 3; -- 将id为3的用户密码修改为newpasswordUPDATE `role` SET `name` = 'vip' WHERE `id` = 3; -- 将id为3的角色名称修改为vip

【删除数据】

删除数据可以使用DELETE语句,可以根据条件删除数据。下面是删除数据的示例:

DELETE FROM `user` WHERE `id` = 3; -- 删除id为3的用户信息DELETE FROM `role` WHERE `id` = 3; -- 删除id为3的角色信息DELETE FROM `permission` WHERE `id` = 3; -- 删除id为3的权限信息DELETE FROM `user_role` WHERE `user_id` = 3; -- 删除和id为3的用户关联的角色信息DELETE FROM `role_permission` WHERE `permission_id` = 3; -- 删除和id为3的权限关联的角色信息

【视图创建】

视图是一种虚拟的表格,可以根据实际表格中的数据进行定义,而不是真正存在。我们可以对视图进行增删改查等操作。下面是一个创建用户角色权限视图的示例:

CREATE VIEW `user_role_permission` ASSELECT `user`.`username`, `role`.`name`, `permission`.`url` FROM `user`, `user_role`, `role_permission`, `role`, `permission` WHERE `user`.`id` = `user_role`.`user_id` AND `user_role`.`role_id` = `role_permission`.`role_id` AND `role_permission`.`permission_id` = `permission`.`id` AND `role`.`id` = `role_permission`.`role_id`;

上述代码中,我们创建了一个用户角色权限视图,来展示所有用户、角色和权限的信息。这个视图包含了用户名、角色名称和权限URL。我们可以使用SELECT语句对视图进行查询,如:

SELECT * FROM `user_role_permission`;

可以看到,此时我们就可以基于这个视图进行查询,实际查询的是多张表格的关联信息。

【触发器创建】

触发器可以在表格中插入、删除或更新数据时自动执行一段程序。下面是创建一个插入数据时自动更新用户表的数据行数的触发器的示例:

CREATE TRIGGER `user_count` AFTER INSERT ON `user`FOR EACH ROW BEGIN   -- ...执行动作...   SET @total_count = (SELECT COUNT(*) FROM `user`);   UPDATE `system_info` SET `value` = @total_count WHERE `key` = 'user_count';END;-- 这段代码是用来创建一个触发器的,该触发器被命名为user_count,在每次向user表格插入一行新数据后,就会被触发执行。

上述代码中,我们定义了一个触发器,在用户表中插入数据时,自动更新系统信息表中的用户行数。这个操作会在每个插入操作之后执行,统计用户表格中的所有行数,并更新系统信息表格中的值。我们可以在插入用户数据后,查询系统信息表格的值,来确认是否已经更新。

最后的效果图

总结

        本文主要介绍了如何使用MySQL设计一个常用的后台管理系统,包括数据库的设计、表格的操作、视图和触发器的创建等内容,适合有一定MySQL基础的用户学习。通过这篇文章的学习,你可以了解到如何设计一个常见的后台管理系统的数据库结构,以及如何进行常见的表格操作,比如增删改查等。同时,你也可以学习如何创建视图和触发器来优化数据库操作。希望这篇文章对你有所帮助!

来源地址:https://blog.csdn.net/weixin_43263566/article/details/131119261

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL实战:如何设计一个常用的后台管理系统的数据库结构

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在MySQL中实现仓库管理系统的表结构设计?

如何在MySQL中实现仓库管理系统的表结构设计?引言:随着电子商务的蓬勃发展,仓库管理系统在企业中的重要性日益凸显。通过合理的仓库管理系统,企业能够更好地掌握库存情况、减少仓储成本、提高运营效率。本文将介绍如何在MySQL中设计一个简单而实
如何在MySQL中实现仓库管理系统的表结构设计?
2023-10-31

如何在MySQL中设计仓库管理系统的库存表结构?

如何在MySQL中设计仓库管理系统的库存表结构?在仓库管理系统中,库存管理是非常重要的一环。为了有效地管理仓库中的物品库存,我们需要在MySQL数据库中设计合理的库存表结构。本文将介绍如何设计库存表结构,并提供一些具体的代码示例。建立表首先
如何在MySQL中设计仓库管理系统的库存表结构?
2023-10-31

如何设计一个优化的MySQL表结构来实现数据统计功能?

如何设计一个优化的MySQL表结构来实现数据统计功能?在实际的软件开发中,数据统计是一个非常常见且重要的功能。而MySQL作为一种常用的关系型数据库管理系统,其表结构设计的优化对于数据统计功能的实现来说尤为重要。本文将介绍如何设计一个优化的
如何设计一个优化的MySQL表结构来实现数据统计功能?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存报废?

如何使用MySQL设计仓库管理系统的表结构来处理库存报废?在仓库管理系统中,处理库存报废是一项重要且必要的任务。当某些库存物品过期、损坏或者不再需要时,我们需要及时将其标记为报废状态,并对其进行相应的处理。为了有效地处理库存报废,我们需要在
如何使用MySQL设计仓库管理系统的表结构来处理库存报废?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存调拨?

如何使用MySQL设计仓库管理系统的表结构来处理库存调拨?在仓库管理系统中,库存调拨是一个重要的操作,可以帮助企业优化资源配置、提高管理效率。为了实现高效的库存调拨,我们需要在MySQL数据库中设计合适的表结构来存储和管理库存调拨相关的数据
如何使用MySQL设计仓库管理系统的表结构来处理库存调拨?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存退款?

如何使用MySQL设计仓库管理系统的表结构来处理库存退款引言:在仓库管理系统中,库存退款是一个重要的流程。当出现库存过剩、过期产品或者出现质量问题时,退款是一个必不可少的环节。在处理库存退款时,合理的设计表结构是非常重要的,它可以帮助我们高
如何使用MySQL设计仓库管理系统的表结构来处理库存退款?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存盘点?

如何使用MySQL设计仓库管理系统的表结构来处理库存盘点?库存盘点是仓库管理系统中不可或缺的环节,它能够及时了解当前库存情况、避免过多或过少进货、减少资金和资源的浪费。设计一个高效的库存盘点系统,关键在于合理设计表结构,下面以MySQL为例
如何使用MySQL设计仓库管理系统的表结构来处理库存盘点?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存调整?

如何使用MySQL设计仓库管理系统的表结构来处理库存调整?介绍仓库管理系统是现代企业中非常重要的一部分。随着业务的发展,企业需要不断调整其库存。为了更好地管理和控制库存调整,我们可以设计一个基于MySQL的仓库管理系统,并在本文中提供具体的
如何使用MySQL设计仓库管理系统的表结构来处理库存调整?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存预警?

如何使用MySQL设计仓库管理系统的表结构来处理库存预警?引言:随着仓储业务的发展,仓库管理系统的重要性日渐突出。而库存预警作为其中关键的功能之一,具有对仓库运营和管理工作至关重要的作用。本文将重点介绍如何使用MySQL设计仓库管理系统的表
如何使用MySQL设计仓库管理系统的表结构来处理库存预警?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存转移?

如何使用MySQL设计仓库管理系统的表结构来处理库存转移?引言:仓库管理系统是一个非常重要的应用系统,尤其对于拥有大量库存的企业来说,良好的库存管理是保证正常运营的基石。库存转移是仓库管理中经常发生的一项操作,而如何利用MySQL来设计合理
如何使用MySQL设计仓库管理系统的表结构来处理库存转移?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来处理库存采购?

如何使用MySQL设计仓库管理系统的表结构来处理库存采购?引言:随着电子商务的快速发展,仓库管理系统对于企业来说变得越来越重要。一个高效且准确的仓库管理系统可以提高库存采购的效率,减少人力资源的浪费,降低成本。MySQL作为一种常用的关系型
如何使用MySQL设计仓库管理系统的表结构来处理库存采购?
2023-10-31

如何在MySQL中设计仓库管理系统的表结构来管理库存入库和出库?

如何在MySQL中设计仓库管理系统的表结构来管理库存入库和出库?随着电子商务的迅猛发展,仓库管理系统成为了许多企业不可或缺的一部分。在仓库管理系统中,库存的入库和出库是两个非常重要的环节。因此,设计一个合适的表结构来管理库存的入库和出库就显
如何在MySQL中设计仓库管理系统的表结构来管理库存入库和出库?
2023-10-31

如何使用MySQL设计仓库管理系统的表结构来跟踪库存变化?

如何使用MySQL设计仓库管理系统的表结构来跟踪库存变化?介绍仓库管理系统是一个用来管理货物进出、库存变化的重要系统。在系统设计中,合理的表结构设计非常关键,能够有效地跟踪库存变化,确保数据的准确性和可靠性。本文将介绍如何使用MySQL来设
如何使用MySQL设计仓库管理系统的表结构来跟踪库存变化?
2023-10-31

如何在MySQL中设计仓库管理系统的表结构来管理仓库员工信息?

如何在MySQL中设计仓库管理系统的表结构来管理仓库员工信息?在仓库管理系统中,员工信息是一个重要的部分,其表结构设计应该能够存储员工的基本信息以及相关的仓库管理数据。在MySQL中设计仓库管理系统的表结构时,可以根据员工信息的属性划分为多
如何在MySQL中设计仓库管理系统的表结构来管理仓库员工信息?
2023-10-31

如何在MySQL中设计仓库管理系统的表结构来处理库存退货?

如何在MySQL中设计仓库管理系统的表结构来处理库存退货?随着电子商务的迅猛发展,企业对仓储管理的需求越来越重要。而库存退货作为仓储管理的一部分,也需要在数据库中有相应的表结构来处理。本文将介绍如何在MySQL中设计仓库管理系统的表结构来处
如何在MySQL中设计仓库管理系统的表结构来处理库存退货?
2023-10-31

如何在MySQL中设计仓库管理系统的表结构来管理库存价格信息?

如何在MySQL中设计仓库管理系统的表结构来管理库存价格信息?在仓库管理系统中,库存价格的管理对于企业的运营十分重要。为了有效管理库存价格信息,在设计MySQL数据库的表结构时,需要考虑以下几个方面:仓库管理、商品管理、库存管理以及价格管理
如何在MySQL中设计仓库管理系统的表结构来管理库存价格信息?
2023-10-31

如何设计一个高效的MySQL表结构来实现用户管理功能?

如何设计一个高效的MySQL表结构来实现用户管理功能?为了实现用户管理功能,我们需要在数据库中设计一张用户表来存储用户相关信息,如用户名、密码、邮箱等。下面将逐步介绍如何设计高效的MySQL表结构来实现用户管理功能。一、创建用户表首先,我们
如何设计一个高效的MySQL表结构来实现用户管理功能?
2023-10-31

如何在MySQL中设计仓库管理系统的表结构来管理库存供应商信息?

如何在MySQL中设计仓库管理系统的表结构来管理库存供应商信息?在一个仓库管理系统中,库存供应商信息的管理是非常重要的一部分。在MySQL中,可以通过设计合适的表结构来存储和管理这些信息。本文将介绍如何在MySQL中设计表结构来管理库存供应
如何在MySQL中设计仓库管理系统的表结构来管理库存供应商信息?
2023-10-31

如何设计一个灵活的MySQL表结构来实现论文管理功能?

如何设计一个灵活的MySQL表结构来实现论文管理功能?摘要:本文介绍了如何设计一个灵活的MySQL表结构来实现论文管理功能。首先,对论文管理功能进行概括和需求分析;其次,设计了论文表、作者表、期刊表和关系表;最后,给出了基本的MySQL表结
如何设计一个灵活的MySQL表结构来实现论文管理功能?
2023-10-31

编程热搜

目录