Bir "Facebook Duvarı" sorgulamak için iyi bir db şema ve yöntemi nedir

1 Cevap php

Ben bir kullanıcı başka bir kişinin duvarına gönderebilir ve kişi sadece o Duvar mesaja cevap, ya da yeni bir duvar yazısı sonrası basit bir "Facebook Duvarı" tipi özelliğini yazıyorum. Kullanıcılar bir cevapta cevap veremezsiniz, sadece (sadece facebook gibi) orijinal duvar mesaja cevap verebilir

Ben düşünmüştü benim özgün MySQL db şema şöyle:

post_id (pk)
post_text (char)
date_posted (datetime)
is_parent (bool)
parent_id (id of parent)

How it works:
If someone posts a new wall post, is_parent will be set to 1, and parent_id will be set to null.

Birisi bu mesaja cevap nakleder ise, is_parent 0 olacak ve parent_id üst yazının kimliği ayarlanır.

My Questions

  1. Bu özellik için iyi bir şema var mı? Eğer değilse, ne şema kullanmak istiyorsunuz?
  2. O iyi olursa sorgu sonucu üzerinde yineleme zaman, ebeveyn ve çocuk hepsi bir araya gelip, böylece ebeveyn ile çocuklar gruplama yaparken, nasıl, en son yayınlanan sırasına göre tüm duvar mesajları dönecektir tek bir sorgu yapabilirsiniz .
  3. Ya da 2 sorguları yapmak daha iyidir? Tüm ebeveynler, çocuklar için 1 sorgu için bir sorgu.

1 Cevap

First of all. I don't think you need two field for the same purpose. parent_id is enough in this case. When you have post_id set auto-increament. The first assigned value will be 1, so parent_id=0 will never happen. You can assume when parent_id=0 it is a first level post.

Tüm cevaplar için tek bir sorgu kullanmak daha iyi olacaktır.