对于数据库电子邮件系统来说,什么是好的数据库设计?

发布于 2024-10-06 13:22:46 字数 1557 浏览 0 评论 0原文

我有一个像这样的简单表来创建数据库基础电子邮件系统, 这是最好的方法吗?

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);

I have a simple table like this in mind to create a db base email system,
is this the best approach ?

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

case 1: profile A sending email to profile B,
and B Replies back (one to one
communication)

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);

case 2:

-Profile A sending email to profile B,C, D.

-Profile B repling back all to whole group.

-A replying again to whole group.

-C replies to A only

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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清泪尽 2024-10-13 13:22:46

我觉得单个表会更容易实现:

TABLE Message
- 消息 ID (GUID)
- 父 ID (GUID)
- 主题
- 信息
- 到
- 发件人
- 创建于
- 是草稿
- 已删除
- isRead

如果您要向群组发送电子邮件,只需使用不同的“收件人”条目创建多个记录

I feel like a single table would be a lot easier to impliment :

TABLE Message
- MessageId (GUID)
- ParentId (GUID)
- Subject
- Message
- To
- Sender
- CreatedOn
- isDraft
- isDeleted
- isRead

If you are sending an email to a group, just create multiple records with different "To" entries

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文