Necesito almacenar conversaciones de chat en un esquema de base de datos. La forma en que usaría esta base de datos es publicando chats en un sitio web. Cada chat no tendrá más de 20 respuestas. ¿Alguien puede sugerir un esquema para esto?DB Schema para chats?
Respuesta
Esto es un comienzo usando MySQL Workbench
Y la creación de la escritura
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@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 [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
Y le invitamos a descargar el archivo MWB de my dropbox.
No, sigo recibiendo un 404 en el enlace. –
Líneas Conversación has_may
Línea belongs_to usuario, tiene un contenido & tiempo
Esto suena tan intensivo en DB. Crees que si tienes 10K usuarios conversando todos los días, estarás inundado de datos en un mes ... – Trip
30 días * 1440 minutos en un día * 200 caracteres por minuto (velocidad promedio de escritura) * 10,000 usuarios chateando = 85 gigabytes (aproximadamente) – thomasfedb
Por supuesto, esto supone que sus usuarios literalmente dedican 24/7 al chat ... En cualquier caso, 85GB probablemente esté dentro de lo que la mayoría de las bases de datos SQL pueden manejar, pero quizás podría considerar purgar las líneas de conversación anteriores a 24 horas , etc. – thomasfedb
- 1. Suprimir salida en Rake Tarea db: schema: cargar
- 2. XML Schema Designer para Visual Studio 2008
- 3. Convenciones para anotar appinfo en xml-schema?
- 4. Printing Table's structure/schema
- 5. CSS 'schema' how-to
- 6. ¿Rake db: schema: dump recrea schema.rb desde migraciones o desde la base de datos?
- 7. ¿Cuál es la diferencia entre db: test: clone, db: test: clone_structure, db: test: load y db: test: prepare?
- 8. SQL Server Compact - Schema Management
- 9. Json Schema Example for patternProperties
- 10. Extensión de archivo Json Schema
- 11. XSD Schema Validation en Ruby
- 12. java.sql.SQLException: Schema 'ROOT' no existe
- 13. nosql db para python
- 14. GUI para Berkeley DB
- 15. Necesita consejo sobre MongoDB Schema for Chat App. Embedded vs Related Documents
- 16. problema de configuración: Primavera NamespaceHandler para [http://www.springframework.org/schema/mvc]
- 17. XML Schema key/keyref - cómo usarlos?
- 18. Entidades DTD vs XML Schema Elementos
- 19. Mock MySQL DB para PHPUnit
- 20. MongoDB Schema Design - Votando en las publicaciones
- 21. Keyspace schema import and export in Cassandra
- 22. heroku db: pull no funciona?
- 23. rake db: migrate no funciona
- 24. Estrategia para tratar con grandes tablas db
- 25. ¿Qué DB para grandes bases de datos?
- 26. Promoviendo Couch-DB para la administración
- 27. ¿Transacciones para acceso DB de solo lectura?
- 28. Mejores prácticas para SQLite DB y ContentProvider
- 29. Diferentes DB y front end para Meteor
- 30. capistrano,: db role, ¿para qué sirve?
chats anónimos o usuarios reconocidos? –
chats anónimos –