我正在编写一个简单的“Facebook 墙”类型功能,用户可以在另一个人的墙上发帖,人们可以简单地回复该墙帖,或发布新的墙帖。用户无法回复回复,您只能回复原始墙帖(就像 facebook 一样)
我想到的原始 mySQL 数据库架构是这样的:
post_id (pk) post_text(字符) date_posted(日期时间) is_parent (bool) parent_id(父母的ID)
工作原理:
如果有人发布新的墙帖,is_parent 将设置为 1,而 parent_id 将设置为 null。
如果有人回复了该帖子,is_parent 将为 0,而 parent_id 将设置为父帖子的 ID。
我的问题
- 这是此功能的良好架构吗?如果没有,你会使用什么模式?
- 如果它很好,我怎么能做一个查询,它将按最近发布的顺序返回所有墙贴,同时将孩子与父母分组,这样当我遍历查询结果时,父母和孩子都聚集在一起.
- 还是做 2 个查询更好?1 次查询所有父母,1 次查询孩子。