Je cherche la meilleure solution pour implémenter la messagerie à plusieurs utilisateurs dans le système (style Facebook).Schéma de base de données pour la messagerie à plusieurs utilisateurs
Je suis venu avec l'idée suivante: où chaque message appartient au Message_Chain et dans la table Message_status l'expéditeur-utilisateur et les utilisateurs-récepteurs sont énumérés. Cependant, j'ai peur que ce schéma ne soit pas très efficace lorsqu'il y a des millions de messages dans le système.
Quelqu'un pourrait-il suggérer une autre solution au problème actuel? Ou expliquer pourquoi ma solution ira bien?
CREATE TABLE `message` (
`msg_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`msg_text` TEXT NOT NULL ,
`msg_date` DATETIME NOT NULL ,
PRIMARY KEY (`msg_id`));
CREATE TABLE `message_chain` (
`msgc_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`msgc_topic` VARCHAR(255) NULL ,
PRIMARY KEY (`msgc_id`));
CREATE TABLE `message_status` (
`msgsta_msg_id` BIGINT UNSIGNED NOT NULL ,
`msgsta_usr_id` INT UNSIGNED NOT NULL ,
`msgsta_msgc_id` INT UNSIGNED NOT NULL ,
`msgsta_is_sender` TINYINT(1) NULL ,
`msgsta_is_read` TINYINT(1) NULL DEFAULT NULL ,
`msgsta_is_deleted` TINYINT(1) NULL ,
PRIMARY KEY (`msgsta_msg_id`, `msgsta_usr_id`);
« Je suis cependant peur que ce schéma est pas très efficace d'utiliser quand il y a des millions de messages dans le système. » .. Je pense – Jack
En désaccord :) Planification mature = pas de problème de tête – Websirnik