Dit skema ser helt fint ud, du kan se, at de andre (inklusive mig selv i dag) kom med mere eller mindre samme struktur før (Lagring af beskeder fra forskellige chats i en enkelt databasetabel , Databaseskema til en-til-en og gruppechat , Oprettelse af en privat trådet beskedsystem som facebook og gmail ). Jeg vil virkelig gerne bemærke, at din visuelle repræsentation er den bedste af alle, den er så nem at forstå og følge :)
Generelt synes jeg at have "rum" ("chat", "samtale") giver mening, selvom du ikke har nogen specifikke egenskaber i øjeblikket (som det kan være name
, posting_allowed
, type
(dvs. hvis du genbruger den lignende struktur ikke kun til private beskeder og chats, men dvs. til offentlige indlæg med kommentarer) og så videre. Enkelt tabel med det enkelte indeks-id skal være superhurtigt og have tæt på nul overhead, men det vil tillade udvidelse ganske nemt uden behov for at ændre al eksisterende kode (dvs. en dag beslutter du dig for at tilføje et name
til chats). Holder roomID-logikken "skjult" inde i participants
tabellen vil ikke være gennemsigtig og heller ikke effektiv (dvs. når du skal finde næste ID for chatten), det vil jeg ikke anbefale.