MySQL 数据库设计:网站系统管理和用户模块功能实现
1. 系统管理模块
用户表 (user):
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(50) NOT NULL COMMENT '密码',
`email` varchar(50) NOT NULL COMMENT '邮箱',
`role` enum('tourist', 'registered', 'admin') NOT NULL COMMENT '用户角色',
`status` enum('normal', 'banned', 'deleted') NOT NULL DEFAULT 'normal' COMMENT '用户状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
个人信息表 (user_profile):
CREATE TABLE `user_profile` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户资料ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`realname` varchar(50) DEFAULT NULL COMMENT '真实姓名',
`gender` enum('male', 'female') DEFAULT NULL COMMENT '性别',
`birthday` date DEFAULT NULL COMMENT '生日',
`phone` varchar(20) DEFAULT NULL COMMENT '电话',
`address` varchar(200) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户资料表';
资源类别表 (resource_category):
CREATE TABLE `resource_category` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '资源类别ID',
`name` varchar(50) NOT NULL COMMENT '资源类别名称',
`description` varchar(200) DEFAULT NULL COMMENT '资源类别描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资源类别表';
资源内容表 (resource):
CREATE TABLE `resource` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '资源ID',
`user_id` int(11) NOT NULL COMMENT '发布用户ID',
`category_id` int(11) NOT NULL COMMENT '资源类别ID',
`title` varchar(200) NOT NULL COMMENT '资源标题',
`description` varchar(1000) DEFAULT NULL COMMENT '资源描述',
`content` text NOT NULL COMMENT '资源内容',
`price` decimal(10, 2) DEFAULT NULL COMMENT '资源价格',
`status` enum('pending', 'approved', 'rejected') NOT NULL DEFAULT 'pending' COMMENT '资源状态',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
KEY `fk_category_id` (`category_id`),
CONSTRAINT `fk_category_id` FOREIGN KEY (`category_id`) REFERENCES `resource_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资源内容表';
合同表 (contract):
CREATE TABLE `contract` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '合同ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`resource_id` int(11) NOT NULL COMMENT '资源ID',
`percentage` int(11) NOT NULL COMMENT '网站收费百分比',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
KEY `fk_resource_id` (`resource_id`),
CONSTRAINT `fk_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `resource` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合同表';
消息公告表 (notification):
CREATE TABLE `notification` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '消息公告ID',
`title` varchar(200) NOT NULL COMMENT '消息公告标题',
`content` text NOT NULL COMMENT '消息公告内容',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息公告表';
活动表 (activity):
CREATE TABLE `activity` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '活动ID',
`user_id` int(11) NOT NULL COMMENT '发布用户ID',
`title` varchar(200) NOT NULL COMMENT '活动标题',
`description` varchar(1000) DEFAULT NULL COMMENT '活动描述',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`status` enum('draft', 'published', 'closed') NOT NULL DEFAULT 'draft' COMMENT '活动状态',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='活动表';
论坛帖子表 (post):
CREATE TABLE `post` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '帖子ID',
`user_id` int(11) NOT NULL COMMENT '发布用户ID',
`title` varchar(200) NOT NULL COMMENT '帖子标题',
`content` text NOT NULL COMMENT '帖子内容',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='论坛帖子表';
论坛回帖表 (reply):
CREATE TABLE `reply` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '回帖ID',
`post_id` int(11) NOT NULL COMMENT '帖子ID',
`user_id` int(11) NOT NULL COMMENT '回帖用户ID',
`content` text NOT NULL COMMENT '回帖内容',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `fk_post_id` (`post_id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_post_id` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='论坛回帖表';
2. 用户模块
用户表 (user):
同系统管理模块的用户表。
个人信息表 (user_profile):
同系统管理模块的个人信息表。
资源类别表 (resource_category):
同系统管理模块的资源类别表。
资源内容表 (resource):
同系统管理模块的资源内容表。
合同表 (contract):
同系统管理模块的合同表。
活动表 (activity):
同系统管理模块的活动表。
论坛帖子表 (post):
同系统管理模块的论坛帖子表。
论坛回帖表 (reply):
同系统管理模块的论坛回帖表。
用户权限表 (user_permission):
CREATE TABLE `user_permission` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户权限ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`permission` varchar(50) NOT NULL COMMENT '权限',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户权限表';
购买记录表 (purchase_history):
CREATE TABLE `purchase_history` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '购买记录ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`resource_id` int(11) NOT NULL COMMENT '资源ID',
`price` decimal(10, 2) NOT NULL COMMENT '购买价格',
`create_time` datetime NOT NULL COMMENT '购买时间',
PRIMARY KEY (`id`),
KEY `fk_user_id` (`user_id`),
KEY `fk_resource_id` (`resource_id`),
CONSTRAINT `fk_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `resource` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购买记录表';
原文地址: https://www.cveoy.top/t/topic/mXUW 著作权归作者所有。请勿转载和采集!