基于javaweb和MySQL的笔记管理系统

要求

1.用户

1.注册和登入。

2.用户可以发布,删除,修改自己的笔记。

   详细要求:发布笔记时,笔记要有专属的区域,比如这个笔记是文学。区的设置自己定义,大概     六个区域就可以了。

3.用户可以在首页查看所有的笔记,以及对应分区的笔记。

4.允许用户修改自己的信息。

5.用户可以收藏,评论,点赞他人的笔记。

6.用户可以在用户中心查询自己发布的笔记,评论的笔记,点赞的笔记。

   详细要求:用户查询笔记时可以点击进去看到详细内容,比如评论,点赞量,收藏量等等。

2.区域管理员

1.可以禁用所属区域用户,用户不可以发布笔记。

2.可以删除所属区域用户的笔记。

3.可以审批用户发布的笔记,只有区域管理员同意,用户笔记才能发布。

3.系统管理员 

1.可以删除所有笔记。

4.其他

1.分页:分页显示笔记。

2.标签:给笔记添加标签。

3.模糊搜索和精确搜索。

4.文件上传。

5.进阶要求

1.用户有历史浏览记录。

2.笔记可以通过收藏量,点赞量,热度,浏览量之类的排序。

3.用户的笔记被管理员驳回或者删除后可以有申诉功能。

4.用户可以举报笔记。

5.系统管理员可以看到区域管理员被申诉的次数,管理员被申诉多次可以解除管理员身份。

6.每个用户要有自己的唯一标识,显示在个人主页。

7.系统管理员可以管理区域管理员的身份。

8.系统管理员可以发公告通知所有的账号。

9.用户之间可以加好友聊天。、

10.对于管理员审核笔记,笔记的通过与不通过,还有禁止用户等操作要有日志。

11.用户注册绑定邮箱激活。

12.密码加密存储。

项目结构

src
├── com
│   └── hpx
│       ├── controller
│       │   ├── NoteController.java
│       │   └── UserController.java
│       │   └──AdminController.java
│       ├── domain
│       │   ├── Admin.java
│       │   ├── Comment.java
│       │   ├── Like.java
│       │   ├── Note.java
│       │   └── User.java
│       ├── mapper
│       │   ├── NoteMapper.java
│       │   └── UserMapper.java
│       │   └──AdminMapper.java
│       ├── service
│       │   ├── NoteService.java
│       │   └── UserService.java
│       │   └──AdminService.java
│       └── util
│           └── DBUtil.java

详细设计

这部分是一部分的设计。

MySQL数据库设计

创建一个uns的数据库,再创建admins,comments,favorites,likes,messages,note-tags,notes,tags,users这九个表。具体创建表的DDL如下:

1.admins
CREATE TABLE `admins` (
  `id` int NOT NULL AUTO_INCREMENT,
  `adminname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `password` varchar(50) NOT NULL,
  `area` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  PRIMARY KEY (`id`)
)
2.comments
CREATE TABLE `comments` (
  `id` int NOT NULL AUTO_INCREMENT,
  `note_id` int NOT NULL,
  `user_id` int NOT NULL,
  `content` text NOT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `note_id` (`note_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`note_id`) REFERENCES `notes` (`id`),
  CONSTRAINT `comments_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
)
3.favorites
  • 37
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,需要确定个人知识管理系统中需要存储哪些数据。一般来说,个人知识管理系统需要存储以下内容: 1. 用户信息:包括用户ID、用户名、密码等基本信息。 2. 笔记信息:包括笔记ID、标题、内容、标签、创建时间等信息。 3. 收藏信息:包括收藏ID、笔记ID、收藏时间等信息。 4. 分类信息:包括分类ID、分类名称等信息。 接下来,我们可以使用MySQL数据库来创建这些表: ```sql CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `note` ( `id` INT NOT NULL AUTO_INCREMENT, `title` VARCHAR(50) NOT NULL, `content` TEXT NOT NULL, `tags` VARCHAR(50), `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `user_id` INT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ); CREATE TABLE `favorite` ( `id` INT NOT NULL AUTO_INCREMENT, `note_id` INT NOT NULL, `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `user_id` INT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`note_id`) REFERENCES `note` (`id`), FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ); CREATE TABLE `category` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `user_id` INT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ); ``` 这里我们创建了四张表,分别是`user`、`note`、`favorite`和`category`。其中,`user`表用于存储用户信息,`note`表用于存储笔记信息,`favorite`表用于存储收藏信息,`category`表用于存储分类信息。 对于`note`表和`favorite`表,我们使用外键来关联`user`表,使得每条笔记和每个收藏都属于一个用户。对于`category`表,我们也使用外键来关联`user`表,确保每个分类都属于一个用户。 当然,在实际应用中,我们还可以根据具体需求添加其他的表和字段,以满足个人知识管理系统的需要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值