sql >> Databáze >  >> RDS >> Mysql

Schéma databáze pro chat:soukromé a skupinové

Vaše schéma vypadá naprosto v pořádku, můžete vidět, že ostatní (včetně mě dnes) přišli s víceméně stejnou strukturou dříve (Ukládání zpráv z různých chatů do jedné databázové tabulky , Schéma databáze pro individuální a skupinový chat , Vytvoření soukromého vlákna systém zasílání zpráv, jako je Facebook a gmail ). Opravdu bych rád poznamenal, že vaše vizuální reprezentace je nejlepší ze všech, je tak snadné ji pochopit a sledovat :)

Obecně si myslím, že mít „místnost“ („chat“, „konverzace“) má smysl, i když v tuto chvíli nemáte žádné konkrétní vlastnosti (může to být name , posting_allowed , type (tj. pokud podobnou strukturu znovu použijete nejen pro soukromé zprávy a chaty, ale i pro veřejné příspěvky s komentáři) a tak dále. Jedna tabulka s jediným indexovým ID by měla být super rychlá a mít téměř nulovou režii, nicméně umožní rozšíření poměrně snadno, aniž byste museli upravovat veškerý stávající kód (tj. jednoho dne se rozhodnete přidat name do chatů). Logika ID místnosti "skrytá" uvnitř participants tabulka nebude transparentní a ani efektivní (tj. když potřebujete najít další ID chatu), to bych nedoporučoval.



  1. Jak vygenerovat trasování FRD v Oracle Apps 11i/R12

  2. Jak mohu použít YEAR(), MONTH() a DAY() SQL v Doctrine2?

  3. Změna sloupce:null na ne null

  4. Jak automatizovat Galera Cluster pomocí ClusterControl CLI