Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbankschema für Chat:Privat und Gruppe

Ihr Schema sieht vollkommen in Ordnung aus, Sie sehen vielleicht, dass die anderen (einschließlich mir heute) vorher mehr oder weniger die gleiche Struktur hatten (Speichern von Nachrichten verschiedener Chats in einer einzigen Datenbanktabelle , Datenbankschema für Einzel- und Gruppenchats , Erstellen eines privaten Threads Messaging-System wie Facebook und Gmail ). Ich möchte wirklich anmerken, dass Ihre visuelle Darstellung die beste von allen ist, sie ist so einfach zu verstehen und zu befolgen :)

Im Allgemeinen denke ich, dass es sinnvoll ist, "Raum" ("Chat", "Konversation") zu haben, auch wenn Sie im Moment keine bestimmten Eigenschaften haben (wie es z. B. name sein könnte , posting_allowed , type (z. B. wenn Sie die ähnliche Struktur nicht nur für private Nachrichten und Chats, sondern z. B. für öffentliche Beiträge mit Kommentaren wiederverwenden) und so weiter. Eine einzelne Tabelle mit der einzelnen Index-ID sollte superschnell sein und nahezu null Overhead haben, sie ermöglicht jedoch eine recht einfache Erweiterung, ohne dass der gesamte vorhandene Code geändert werden muss (d. h. eines Tages entscheiden Sie sich, einen name hinzuzufügen zu Chats). Die RoomID-Logik "versteckt" in participants halten Tabelle weder transparent noch effizient ist (z. B. wenn Sie die nächste ID des Chats finden müssen), würde ich das nicht empfehlen.