Ich möchte ein Web-Messaging-System wie Facebook haben. Ich denke schon an viele Alternativen für die Datenbankstruktur, bin mir aber nicht sicher, welches die beste Vorgehensweise dafür ist. Ich habe hier zwei Alternativen, die erste verwendet zwei Tabellen, die zweite verwendet drei Tabellen, aber einen Zyklus in ERD.Datenbankstruktur für Web Messaging System
First: Zwei Tabelle, wo die Nachrichtentabelle
user
----------
id
name
message
--------------
id
from_id
to_id
message_id --> refer to this table itself, to make me know which message is the topic
subject
content
time
status --> inbox, outbox, archive
read --> read, unread
Zweite auf sich selbst verweisen: Drei Tabelle, sondern einen Zyklus in erd
user
----------
id
name
message_header
--------------
id
from_id
to_id
subject
status --> inbox, outbox, archive
time
message
--------
id
message_header_id
content
time
read --> read, unread
author_id
persönlich machen, ich mag diese Struktur, weil es verwende nur einen Nachrichtenkopf und viele Nachrichten (Inhalt). Die author_id selbst kann nicht entfernt werden, weil ich sie wissen muss, ob sich die Nachricht auf der linken Seite (als Absender) oder auf der rechten Seite (als Empfänger) befindet. Dieses System ist nur für Zwei-Personen-Messaging-System.
Grundsätzlich sind diese beiden Tabellen identisch, aber welches ist die beste Vorgehensweise, um dieses Messaging System zu implementieren? Danke schonmal.
Sollte die Nachricht im Auftrag der Antwort auf eine bestimmte Nachricht verkettet werden oder sollten sie als pro-Zeitstempel – aeonsleo
Mit Antwort um (höhere ids zuerst) kann ein wenig sein aufgeführt werden billiger, aber Sie können Timestamp Bestellung (natürlich, mit einem geeigneten Index) mehr freundlich im Fall, sagen wir, jemand antwortet ohne Internet und es braucht etwas Zeit, um die Nachricht effektiv an die Datenbank zu senden. Das heißt, Sie entscheiden:> –
Was ist das Attribut "is_from_sender"? –