2013-01-23 8 views
7

Ich mache eine soziale App wie Facebook mit Yii Framework und MySQL. Es hat eine Benachrichtigungsschaltfläche oben ähnlich wie Facebook. Wenn jemand in einer Gruppe oder jemand aus Ihrer Freundesliste Beiträge zu einem Ereignis sendet oder wenn Ihnen jemand eine Anfrage sendet, wie soll ich dann diese Benachrichtigungen in der Datenbank verwalten?Wie man eine Facebook wie Notifications Table Structure macht?

Wie: Ich trat einer Gruppe "A". Jemand aus der Gruppe "A" wird in der Gruppe posten, dann sollte eine Benachrichtigung an jeden Benutzer der Gruppe gesendet werden. Wie kann ich die Benachrichtigungstabelle in diesem Fall verwalten?

Ich plane eine Tabellenstruktur zu haben, wie unten angegeben:

user_id | Type_of_notification | notization_text | sender_id | Created_time |

Ist meine Vorgehensweise richtig?

Antwort

11

Sie erstellen effektiv einen Activity Stream in MySQL. Es gibt eine ausgezeichnete Antwort bei How to implement the activity stream in a social network. Ich habe es selbst in einer kleineren App verwendet, aber die Kommentare darin zeigen, dass es sich leicht auf mehrere Millionen Zeilen skalieren lässt.

+0

https://developers.facebook.com/docs/technical-guides/fql/. Ab dem 8. August 2016 ist FQL nicht mehr verfügbar und kann nicht abgefragt werden. Verwenden Sie zum Migrieren Ihrer App das API-Aktualisierungstool, um die Graph-API-Aufrufe anzuzeigen, die Sie stattdessen ausführen können. Weitere Informationen zur Migration von API v2.1 – Amit

7

Sie können facebooks "notification" Tabellenstruktur für fql sehen, die Ihnen eine bessere Vorstellung von Ihrem Tisch geben kann.

Diese können einige Ihrer Spalten sein:

id, sender_id,type_of_notification, title_html, body_html, href , 
recipient_id, is_unread, is_hidden, created_time 

Siehe Benachrichtigungstabelle in fql technical-guides

+0

Link ist jetzt kaputt, –