我们即将升级我们网站上的评论系统,该系统目前是单级结构并使用 MySQL。我们想将其更改为多级。
需要记住的一件事是,我们会显示每个用户个人资料下的所有评论。
到目前为止,考虑因素如下:
SQL 专家:
- 更轻松地检索每个用户的评论
SQL 缺点:
- 需要更长的时间来检索线程的整个树
无 SQL 优点:
- 线程中的所有评论都可以作为单个对象检索
- 现有树模式
无 SQL 缺点:
- 检索单个用户的评论更难/更慢
- 现有树的更新更加困难
在您的制作经验中,还有哪些其他优点和缺点?
最佳答案
通过 RDBMS,您可以使用 JOIN - 因此每个评论只需存储一次,没有数据重复(专业版),并且可以通过利用 JOIN 来满足您的两种显示用例。
例如MongoDB、JOIN 不受支持(缺点),但是您可以通过复制数据来实现这两种情况的良好性能 - 将评论存储在与树结构相关的页面文档中一次,然后再存储在“UserComments”集合文档中与该特定用户相关。即要查看与某个页面关联的所有评论,请查询该页面的 CollectionA,要查看某个用户的所有评论,请按用户 ID 查询 CollectionB。
关于mysql - 了解了有关 SQL 和 no-SQL 的所有知识后,存储树的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995369/