私は、ユーザーが他の人の壁に投稿でき、その壁の投稿に返信したり、新しい壁の投稿を投稿したりできる、シンプルな「Facebookウォール」タイプの機能を書いています。ユーザーは返信に返信できません。元のウォール投稿にのみ返信できます(Facebookのように)
私が考えていた元のmySQLデータベーススキーマは次のようになります。
post_id(pk) post_text(char) date_posted(日時) is_parent(bool) parent_id(親のID)
仕組み:
誰かが新しいウォールポストを投稿した場合、is_parentは1に設定され、parent_idはnullに設定されます。
誰かがその投稿に返信を投稿した場合、is_parentは0になり、parent_idは親投稿のIDに設定されます。
私の質問
- これはこの機能に適したスキーマですか?そうでない場合、どのスキーマを使用しますか?
- 良い場合は、子を親とグループ化しながら、すべてのウォール投稿を最近投稿された順に返す単一のクエリを実行して、クエリ結果を反復処理したときに親と子がすべて一緒になるようにするにはどうすればよいですか? 。
- それとも、2つのクエリを実行する方が良いですか?すべての親に対して1つのクエリ、子に対して1つのクエリ。