盖楼回复里面包含有对回复的回复。
设计的几种思路:
1、用长短key来表示树结构;
---回复层数限制于key字段长度,采用16进制,主体回复5字段,其他4字段,分别对应100万和6万回复,key字段用255可以63层嵌套,key的生成有点麻烦;
---如果采用32位,每层4字符,每层就可以支持100万回复,其他可以5楼后只要3个字符就行;64进制3个字符可以表示10万;
---key生成规则:父记录的key加上回复父记录的序号,这个需要记得要转为16进制;---并发时不好处理,不过有重复的也无所谓;
2、子节点指向父节点;
---有递归调用,查询占用资源比较多,mysql中需要自定义函数,嵌套层数没有限制,做数据库迁移时可能会有问题;
3、左右节点范围指示节点关系:
---查询很快,但是插入时需要全部记录都需要修改;
4、复制前面回复,附加上新的;
---没有树结构,删除垃圾评论时,需要一个个删除已经回复的记录,占用空间大。
5、下面这种设计方式;
---设计有点复杂,不便于程序员实现。
http://explainextended.com/2009/09/29/adjacency-list-vs-nested-sets-mysql/