簡體   English   中英

數據庫基礎電子郵件系統的最佳數據庫設計是什么?

[英]what would be a good db design for database base email system?

我有一個像這樣的簡單表可以創建一個基於數據庫的電子郵件系統,這是最好的方法嗎?

TABLE `message`
      - id
      - parent_id
      - message
      - subject
      - created_on
      - is_draft
      - sender_profile_id      


TABLE `email_message`
      - id
      - is_read
      - is_deleted
      - message_id
      - profile_id

情況1:個人資料A向個人資料B發送電子郵件,然后B回復(一對一通訊)

INSERT INTO `message` (`id`, `parent_id`, `message`, `subject`, `created_on`, `is_draft`, `sender_profile_id`) VALUES
(1, 0, 'Hi what''s up how are u', 'Hi', '2010-12-08 11:27:54', 0, 1),
(2, 1, 'yeah i am gud', 0, '2010-12-08 11:28:19', 0, 2);

INSERT INTO `email_message` (`id`, `is_read`, `is_deleted`, `message_id`, `profile_id`) VALUES
(1, 1, 0, 1, 2),
(2, 1, 0, 2, 1);

情況2:

-配置文件A向配置文件B,C,D發送電子郵件。

-配置文件B將全部重新發送回整個組。

-對整個小組的再次答復。

-C僅回復A

INSERT INTO `message` (`id`, `parent_id`, `message`, `subject`, `created_on`, `is_draft`, `receiver_profile_id`) VALUES
(3, 0, 'Hi what''s up how are u', 'Hi', '2010-12-08 11:27:54', 0, 1),
(4, 3, 'yeah i am gud.', 0, '2010-12-08 11:28:19', 0, 2),
(5, 3, 'why are u gud?', 0, '2010-12-08 11:28:19', 0, 1),
(6, 3, 'what?', 0, '2010-12-08 11:28:19', 0, 3);

INSERT INTO `email_message` (`id`, `is_read`, `is_deleted`, `message_id`, `profile_id`) VALUES
(3, 1, 0, 3, 2),
(4, 0, 0, 3, 3),
(5, 0, 0, 3, 4),        

(6, 0, 0, 4, 1),
(7, 0, 0, 4, 3),
(8, 0, 0, 4, 4),

(3, 0, 0, 5, 2),
(4, 0, 0, 5, 3),
(5, 0, 0, 5, 4),

(6, 0, 0, 6, 1);

我覺得單張表的隱含性要容易得多:

TABLE消息-MessageId(GUID)-ParentId(GUID)-主題-消息-收件人-發件人-CreatedOn-isDraft-isDeleted-isRead

如果您要向網上論壇發送電子郵件,只需使用不同的“收件人”條目創建多個記錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM