我正在尋找實現向系統內多個用戶(Facebook風格)發送消息的最佳解決方案。用於向多個用戶發送消息的數據庫模式
我想出了以下想法:其中每條消息屬於Message_Chain並且在Message_status表中列出了user-sender和users-receivers。但是,如果系統中有數百萬條消息,恐怕這種模式的效率不高。
任何人都可以提出任何其他解決方案到當前的問題?或者解釋爲什麼我的解決方案會很好?
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`);
「不過我怕這個模式是不是很有效時,有數以百萬計的郵件系統中的使用。」 ..我想你應該首先達到這個極限,然後擔心太多的某些細節,過早優化是所有邪惡的根源:) – Jack 2010-11-23 13:59:25
不同意:)成熟的規劃=沒有未來的頭痛 – Websirnik 2010-11-23 14:18:21