Mysql
 sql >> Database >  >> RDS >> Mysql

Schema database per chat:privato e di gruppo

Il tuo schema sembra perfettamente a posto, potresti vedere che gli altri (incluso me stesso oggi) avevano più o meno la stessa struttura prima (Memorizzazione di messaggi di diverse chat in un'unica tabella del database , Schema di database per chat uno a uno e di gruppo , Creazione di un thread privato sistema di messaggistica come facebook e gmail ). Mi piacerebbe davvero notare che la tua rappresentazione visiva è la migliore di tutte, è così facile da capire e da seguire :)

In generale, penso che avere "stanza" ("chat", "conversazione") abbia senso anche se al momento non hai proprietà specifiche (poiché potrebbe essere name , posting_allowed , type (cioè se riutilizzi la struttura simile non solo per messaggi privati ​​e chat ma cioè per post pubblici con commenti) e così via. La singola tabella con l'ID indice singolo dovrebbe essere super veloce e avere un sovraccarico vicino allo zero, tuttavia consentirà l'estensione abbastanza facilmente senza la necessità di modificare tutto il codice esistente (cioè un giorno deciderai di aggiungere un name alle chat). Mantenendo la logica roomID "nascosta" all'interno dei participants la tabella non sarà trasparente né efficiente (cioè quando devi trovare il prossimo ID della chat), non lo consiglierei.