tables table_name schemata information_schema from esquema data_length columns column_name mysql db-schema

mysql - table_name - ¿Esquema DB para chats?



select column_name from information_schema columns mysql (2)

Necesito almacenar conversaciones de chat en un esquema de base de datos. La forma en que usaría esta base de datos es publicar chats en un sitio web. Cada chat no sería más que unas 20 respuestas. ¿Puede alguien sugerir un esquema para esto?


Aquí hay un comienzo usando MySQL Workbench

Exportación PNG de ERD

Y el script de creación.

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=''TRADITIONAL''; CREATE SCHEMA IF NOT EXISTS `chats` DEFAULT CHARACTER SET utf8 COLLATE default collation ; -- ----------------------------------------------------- -- Table `chats`.`chat` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `chats`.`chat` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `chats`.`chat_user` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `chats`.`chat_user` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `handle` VARCHAR(45) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `chats`.`chat_line` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `chats`.`chat_line` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT , `chat_id` INT UNSIGNED NOT NULL , `user_id` INT UNSIGNED NOT NULL , `line_text` TEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`) , INDEX `fk_chat_line_chat` (`chat_id` ASC) , INDEX `fk_chat_line_chat_user1` (`user_id` ASC) , CONSTRAINT `fk_chat_line_chat` FOREIGN KEY (`chat_id` ) REFERENCES `chats`.`chat` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_chat_line_chat_user1` FOREIGN KEY (`user_id` ) REFERENCES `chats`.`chat_user` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Y le invitamos a descargar el archivo MWB de mi dropbox .


Conversación has_may Lines

La línea pertenece al usuario, tiene contenido y tiempo.