2.需求分析
分类: springboot vue 专栏: 带小白springboot3+vue3+uniapp 标签: springboot3 vue3
2026-01-17 15:50:40 91浏览
功能点分析
我这个小程序做得是多个学校,这个工作量太大,我们就单独拿一个学校做,比如清华大学。

吐糟一下小白选择ai 编程
有些人为了流量是不择手段,害人不浅,说 什么小白能用 ai 开发出一个完整的系统的鬼话。
我见的太多了,我不是反对 ai, ai 是真的方便,我在写项目的时候也经常用 ai.但是 ai 真的不是给小白用的。



数据库表设计
1.用户表 userinfo
id
role管理员和普通用户 admin 就是管理员 user 就是普通用户
username账号
password 密码
create_time 注册时间
head_img 头像
email 邮箱
status 如果是 1 就是启用状态,如果是 0 就是拉黑
2.轮播图表
id
img 图片
create_time 添加时间
3.公告表
id
content 公告内容
title 公告标题
create_time 发布公告时间
3.贴子分类表
id
type_name 分类名称
icon 分类图标
create_time 创建时间
4.贴子表
id
type_id 贴子分类 id,外键
title 标题(从贴子内容抽出来的,如果内容超过 100 个字的话后面的字隐藏... )
content 贴子内容-纯文字
img 图片,最多是 9 张,多张图之间可以用 xxxx.jpg@yyy.jpg@zzz.jpg
video 视频 ,只能一个,且 30s 以内 3m 以内
create_time 发布时间
点赞数
收藏数
评论数
status 如果是 1 就是审核通过,0 就是待审核,-1 就是不通过
5.点赞表
id
user_id 用户 id
贴子 id
create_time 点赞时间
6.评论表
id
user_id 用户 id
贴子 id
create_time 评论时间
content 评论内容-纯文字
7.收藏表
id
user_id 用户 id
贴子 id
create_time 收藏时间
利用 ai 生成初始化 sql 语句
-- 创建用户表
CREATE TABLE `userinfo` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`role` varchar(20) NOT NULL DEFAULT 'user' COMMENT '角色:admin-管理员,user-普通用户',
`username` varchar(50) NOT NULL COMMENT '账号',
`password` varchar(255) NOT NULL COMMENT '密码',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
`head_img` varchar(255) DEFAULT NULL COMMENT '头像',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1-启用,0-拉黑',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- 创建轮播图表
CREATE TABLE `banner` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`img` varchar(255) NOT NULL COMMENT '图片地址',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='轮播图表';
-- 创建公告表
CREATE TABLE `notice` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`content` text NOT NULL COMMENT '公告内容',
`title` varchar(255) NOT NULL COMMENT '公告标题',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发布公告时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公告表';
-- 创建贴子分类表
CREATE TABLE `post_category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`type_name` varchar(50) NOT NULL COMMENT '分类名称',
`icon` varchar(255) DEFAULT NULL COMMENT '分类图标',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='贴子分类表';
-- 创建贴子表
CREATE TABLE `post` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`type_id` bigint NOT NULL COMMENT '贴子分类ID,关联post_category表',
`title` varchar(255) DEFAULT NULL COMMENT '标题(从内容抽取的摘要)',
`content` text NOT NULL COMMENT '贴子内容-纯文字',
`img` varchar(1000) DEFAULT NULL COMMENT '图片,多张图之间用 @ 分隔',
`video` varchar(255) DEFAULT NULL COMMENT '视频地址(限制30s以内,3m以内)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
`likes_count` int unsigned DEFAULT '0' COMMENT '点赞数',
`favorites_count` int unsigned DEFAULT '0' COMMENT '收藏数',
`comment_count` int unsigned DEFAULT '0' COMMENT '评论数',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:1-审核通过,0-待审核,-1-不通过',
PRIMARY KEY (`id`),
KEY `idx_type_id` (`type_id`),
CONSTRAINT `fk_post_category` FOREIGN KEY (`type_id`) REFERENCES `post_category` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='贴子表';
-- 创建点赞表
CREATE TABLE `likes` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID,关联userinfo表',
`post_id` bigint NOT NULL COMMENT '贴子ID,关联post表',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
PRIMARY KEY (`id`),
KEY `idx_likes_user_post` (`user_id`, `post_id`),
CONSTRAINT `fk_likes_user` FOREIGN KEY (`user_id`) REFERENCES `userinfo` (`id`),
CONSTRAINT `fk_likes_post` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='点赞表';
-- 创建评论表
CREATE TABLE `comment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID,关联userinfo表',
`post_id` bigint NOT NULL COMMENT '贴子ID,关联post表',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '评论时间',
`content` text NOT NULL COMMENT '评论内容-纯文字',
PRIMARY KEY (`id`),
KEY `idx_comment_post` (`post_id`),
CONSTRAINT `fk_comment_user` FOREIGN KEY (`user_id`) REFERENCES `userinfo` (`id`),
CONSTRAINT `fk_comment_post` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论表';
-- 创建收藏表
CREATE TABLE `collect` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID,关联userinfo表',
`post_id` bigint NOT NULL COMMENT '贴子ID,关联post表',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
PRIMARY KEY (`id`),
KEY `idx_collect_user_post` (`user_id`, `post_id`),
CONSTRAINT `fk_collect_user` FOREIGN KEY (`user_id`) REFERENCES `userinfo` (`id`),
CONSTRAINT `fk_collect_post` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收藏表';
COMMIT;
下节课讲一下环境软件安装啥的。为了照顾有些小白连软件都没装的人。
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论

新业务
springboot学习
ssm框架课
vue学习
【带小白】java基础速成