我们这个问答系统用到了两张表, 互动问题表 和 互动回答评论表。
互动问题表中的主要字段有 问题id、问题标题、问题描述、所属课程id、所属课程章id、所属课程节id、提问学员id、最新一个回答的id、问题下回答的数量、是否匿名、是否被隐藏、管理端查看问题状态、提问时间、更新时间 。
互动回答评论表中的主要字段有 回复id、问题id、回复的上级回答id、回复者id、回复内容、回复的目标用户id、回复的目标回复id、评论数量、点赞数量、是否被隐藏、是否匿名、创建时间、更新时间。
表间关系:
这是因为在存储问题和评论这种可能包含多个属性和嵌套结构的数据时,MongoDB比MySQL更合适。
因为MongoDB是一个非关系型(NoSQL)数据库,它能够轻松地处理复杂的数据结构和变化频繁的数据模式。
相较之下MySQL是一个关系型(RDBMS)数据库,它用表格的形式组织数据,并通过事先定义好的模式进行存储。
当需要存储包含多个属性和嵌套结构的数据时,MySQL需要创建多个表格并进行关联,而这样的操作会导致复杂度提高。
除此之外,MongoDB采用的是BSON(Binary JSON)格式,它能够更有效地存储和检索JSON数据类型。
所以在存储问题和评论这种可能包含大量JSON格式数据的情况下,MongoDB也能有更好的性能表现。
最后,MongoDB还支持高效的查询和索引功能,能够满足实时访问和快速检索数据的需求。
所以,在需要高度灵活性、可扩展性和高性能的场景中,往往选择MongoDB。