ของผมใช้หลักการดังนี้นะครับ
จะมีอยู่ 2 ตารางด้วยกัน
มีตาราง member กับตาราง friend
member friend
-mId -fId
-username -mId
-pass -refId
-name -confirm
-ect.
สมมติ
นายก. รหัส01
นายข. รหัส02
หน้าโพรไฟร์นาย ก. เมื่อ....
นายก. กดเพิ่มเพิ่ม ข้อมูลตาราง friend ก็จะเก็บ mId='01', refId='02' ,confirm=no
รายชื่อเพื่อนของนายก. ให้ดึงมาโดยใช้เงื่อนไขเป็น
select * from friend as f inner join member as m on m.mId=f.refId where f.mId='01' && f.confirm='yes'
#ดึงข้อมูลเพื่อนที่เราแอดจากตาราง friend ที่รหัสตาราง friend มี mId เป็นของเรา
สำหรับหน้าโปรไฟล์ของเพื่อนคือ นายข.
ก็ดึงข้อมูลมาจากตาราง friend ที่มีรหัสของเพื่อนอยู่ใน refId
(select * from friend as f inner join member as m on m.mId=f.mId where f.refId='02' && f.confirm='no')
ก็จะได้รายชื่อเพื่อนที่แอดเรามา พอเรากดยืนยันให้อัพเดทสถานะเป็น confirm='yes'
เท่านี้เองครับแค่นี้ก็พอเป็นแนวทางได้แล้วมั้งครับ หน้าโปรไฟล์ของเพื่อนกับของเราจะเป็นหน้าเดียวกันแค่เพียงเราใส่เงื่อนไขไปหน่อย
ว่าตอนนี้ใครล็อกอินอยู่คือถ้าเราดูโปรไฟล์ของเราจะใช้ คำสั่ง
m.mId=f.mId where f.ref_id=รหัสของเรา
แต่ถ้าเราดูโปรไฟล์ของเพื่อนก็จะใช้คำสั่ง
m.mId=f.ref_id where f.mId=รหัสของเพื่อน
ไว้งงก่อนค่อยอธิบายใหม่แล้วกันแค่นี้ผมว่าอธิบายไปมากพอสมครแล้ว