我有一个像这样的简单表来创建一个数据库基础电子邮件系统, 这是最好的方法吗?
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:
-Profile发送电子邮件到个人资料B,C,D。
-Profile 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);
答案 0 :(得分:1)
我觉得一张桌子会更容易被人恭维:
TABLE消息 - MessageId(GUID) - ParentId(GUID) - 学科 - 信息 - 至 - 发件人 - 创建于 - isDraft - isDeleted - isRead
如果您要向群组发送电子邮件,只需使用不同的“收件人”条目创建多个记录