(https://preview.ibb.co/c21HYS/bd.png) (https://ibb.co/me0pf7)
Me parece extraordinaria la idea que has tenido y en la medida de lo posible voy a seguir el thread que has creado.
Sólo quiero añadir una pequeña cuestión y es para crear una BD consistente y que no produzca redundancia te aconsejo que apliques lo siquiente:
Un usuario puede estar en un chat y en un Chat puede haber uno o muchos usuarios , es una relacción 1 a N Por consiguiente te aconsejo que añadas a la tabla usuario el idchat como clave foránea. Las entidades con cardinalidad MUCHOS adquieren la primary key como clave foránea. Es decir usuario1 usuario2 los eliminas y en la tabla usuario añades idchat como Foreign key.
Ahora bien...! Si los requerimientos del chat son :
En una Chat pueden haber muchos usuarios
Y un usuario puede estar en muchos chats
Esto es una relacción de MUCHOS A MUCHOS. En estos casos se generaría una nueva Entidad (Tabla) a la que se añadería los id's de usuario y de Chat como Foregin Key añadiendo una columna más ó dos (Columna HORA Y Columna FECHA) del chat que se genera.
Si realizas de forma correcta lo que te indico tendrás normalizada tu mini BD evitando la redundancia de datos
Un saludo inmenso para todos
Es correcto lo que indicas @ dr3x ....!