【问题标题】:Database design for web mail clientWeb邮件客户端的数据库设计
【发布时间】:2016-01-08 10:51:23
【问题描述】:

我正在实现一个网络邮件应用程序。只有注册用户才能发送、接收和查看电子邮件。当我开始设计数据库时,我想出了以下问题。
假设这个应用程序可能有 100 000 个用户(可能更多)。 每个用户的收件箱中都可以有 数千 (n*1000) 封电子邮件。我的问题是...

是否可以为每个用户动态创建收件箱表 只为所有用户创建一个收件箱表?

如果我只使用一个收件箱表格,它会 包含 100000*(n*1000) 记录。如果我做其他方式只有特定用户的 电子邮件将存储在各自的收件箱表中。但是会有 数以千计的收件箱表在数据库中。

谁能提出设计线索...

【问题讨论】:

    标签: sql sql-server performance database-design dynamic-tables


    【解决方案1】:

    这是一个比第一次出现时更难的问题。通常情况下,倾斜是一张桌子。

    但是,我们在这里讨论的是用户和电子邮件。在 SQL Server 中(与其他数据库一样),在表级别而不是在行级别处理权限要容易得多。因此,这是可能将您推向多个表的考虑因素之一。

    尽管有多个表很困难:

    • 对数据结构的更改需要复制无数次。
    • SQL 旨在处理非常大的表,但不一定要处理很多(尽管几千个应该不成问题)。
    • 简单的查询,例如“每个用户有多少未读电子邮件?”变得几乎不可能。
    • 无法对收件箱表进行外键引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 2012-07-23
      相关资源
      最近更新 更多