【发布时间】:2009-11-25 11:02:55
【问题描述】:
我正在编写一个简单的“Facebook 墙”类型功能,用户可以在其他人的墙上发帖,人们可以简单地回复该墙帖,或发布新的墙帖。用户无法回复回复,您只能回复原始墙帖(就像脸书一样)
我最初想到的 mySQL db 架构是这样的:
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 次查询孩子。
【问题讨论】:
标签: php mysql schema parent-child