软件中级实训-软工集市数据库设计
软件中级实训数据库设计
2023.5.3
实体
帖子 post
- 帖子ID(主键)postID int
- 用户ID(用户的外键) userID int
- 所属主题 subject varchar(10)
- 标题 title varchar(20)
- 正文内容 ptext varchar(5000)
- 评论数量 comment_num int
- 点赞数量 like_num int
- 发帖时间 post_time datetime
- 热度 heat double
帖子评论 pcomment
- 帖子评论ID(主键) pcommentID int 主键
- 用户ID(用户的外键)userID int
- 评论目标ID(帖子的外键)ptargetID int
- 点赞数量 like_num int
- 评论内容 pctext varchar(1000)
- 评论时间 time datetime
评论的评论 ccomment
- 评论ID(主键) ccommentID int
- 用户ID(用户的外键)userID int
- 评论目标ID(评论的外键)ctargetID int
- 点赞数量 like_num bigint
- 评论内容 cctext varchar(100)
- 评论时间 time datetime
帖子点赞 plike
- 点赞ID plikeID bigint
- 点赞人ID(用户的外键)userID int
- 点赞目标ID(帖子的外键)ptargetID int
帖子的评论点赞 pclike
- 点赞ID pclikeID int
- 点赞人ID(用户的外键)userID int
- 点赞目标ID(帖子的外键、评论的外键)pctargetID int
评论的评论点赞 cclike
- 点赞ID cclikeID int
- 点赞人ID(用户的外键)userID int
- 点赞目标ID(帖子的外键、评论的外键)cctargetID int
用户 user
- 用户ID userID int
- 手机号 phone char(15)
- 邮箱号 email varchar(255)
- 密码 key varchar(20)
- 用户名称(昵称) name varchar(50)
- 学号/工号 num int
- 头像 profile varchar(50)
- 简介 intro varchar(255)
- 是否通过身份验证 idpass boolean /tinyint(1)
- 是否被封禁 ban boolean/tinyint(1)
管理员 admin
- 账号 account varchar(100)
- 密码 key varchar(100)
举报 sue
举报ID sueID int
举报目标类型 targettype enum
- 帖子
- 帖子的评论
- 评论的评论
举报目标ID ptargetID int
用户ID(举报人ID,用户的外键)userID int
举报原因 reason varchar(1000)
举报时间 sue_time datetime
举报处理情况 status varchar(20)/enum
- ok 已处理
- nosin 经检查无违规
- wait 受理中
是否处理 finish boolean tinyint(1)
对于举报,感觉没必要分成多张表,因为举报的数据量会比较少,搞成一张表对性能影响不明显,而且举报对于日常使用影响不大,所以不设外键也是可以的。
反馈 feedback
- 反馈ID feedbackID int
- 用户ID(用户的外键)userID int
- 反馈内容 ftext varchar(1000)
- 反馈时间 time timestamp
- 反馈处理情况 status enum
- wait 受理中
- ok 已处理
通知 notice
- 通知ID noticeID int
- 接受者ID(用户的外键)receiver int
- 发送者ID(用户的外键)sender int
- 通知类型 type enum
- 帖子被评论 pcomment
- 评论被评论 ccomment
- 被惩罚 punish
- 通知内容 ntext varchar(100)
- 是否已读 read tinyint(1)
notice有没有必要分成多张表?(数量比较多)
外键的设置:CASCADE:主表删除或修改记录时,从表也会对关联记录的外键字段进行修改。
RESTRICT:删除或修改主表记录,子表中若有关联记录,则不允许主表删除或修改。
SET NULL:主表删除或修改主表记录时,从表会将关联记录的外键字段设为null。
ON UPDATE CASCADE:主表修改记录时,从表关联记录的外键字段也会修改。(将CASCADE改为RESTRICT,意思相反)
ON DELETE CASCADE:主表删除记录时,从表关联记录的外键字段也会删除。(将CASCADE改为RESTRICT,意思相反)
在该数据库外键的设置,均采用CASCADE
软件中级实训-软工集市数据库设计
http://thinkerhui.site/2023/05/07/软工集市/软件中级实训-软工集市数据库设计/