背景
在 S2OJ 的使用过程中,题目标签一直是由题目上传者和管理员手动配置的,这样一来就会出现不同名称的标签表达同一意思的情况。一个最典型的例子就是「动态规划」和「DP」这两个标签。
需求
将题目标签系统修改为类似 LibreOJ 的标签系统。附图:

▲ 标签管理入口

▲ 标签管理界面
注:无需实现多语言功能。
实现细节
tags 表
| 键名 |
类型 |
id |
int NOT NULL AUTO_INCREMENT |
name |
varchar(30) NOT NULL |
problems_tags 表
| 键名 |
类型 |
id |
int NOT NULL AUTO_INCREMENT |
problem_id |
int NOT NULL |
tag_id |
int NOT NULL |
背景
在 S2OJ 的使用过程中,题目标签一直是由题目上传者和管理员手动配置的,这样一来就会出现不同名称的标签表达同一意思的情况。一个最典型的例子就是「动态规划」和「DP」这两个标签。
需求
将题目标签系统修改为类似 LibreOJ 的标签系统。附图:
▲ 标签管理入口
▲ 标签管理界面
注:无需实现多语言功能。
实现细节
tags表idint NOT NULL AUTO_INCREMENTnamevarchar(30) NOT NULLproblems_tags表idint NOT NULL AUTO_INCREMENTproblem_idint NOT NULLtag_idint NOT NULL