一个问答数据库表设计问题?
在表设计上有一个疑问,大体上需求:
- 前端用户提交问题后,进入后台审核;
- 后台审核成功后在前台显示出来;
- 如果用户继续修改,那么问题继续进行审核,但是原先的信息仍然可以看到,如果审核失败则需要重新修改;
想问下这种结构的MySQL表格如何设计比较好,是单独拆分成问题+审核表,还是在一张表里使用多个字段分别表示当前信息+修改信息比较好。
目前考虑的是两张表,分别用questions+checks表示,questions里永远只显示审核成功的(显示或者隐藏),checks里记录需要审核的,审核成功后将信息同步到questions中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果不考虑问题版本的问题,那一个表两个字两个字段更清晰一些。
这样的结构,question为问题的发布版本。默认情况下underChecking为false,changed为空,lastModified与createdOn相同,changedOn为空。
当用户发起修改问题的请求时,underChecking为true,changed为修改后的待审核版本,changedOn为修改提交的时间。
审核通过,underChecking为false,question替换为changed,changed置空,lastModified替换为changedOn,changedOn置空。
考虑问题的版本,就需要checks表,所有问题都存在checks表中,在questions表中关联checks的id,决定显示哪一个版本。