SQL架构建议

时间:2015-06-08 18:03:22

标签: sql sql-server schema

我对SQL很新,尤其是在使用PHP时,我目前正致力于一个允许用户跟踪他们阅读的应用程序。第一个版本将有一个简单的日历,允许您输入开始的日期和完成时间。

我的问题是我的用户登录和管理系统。现在,我的SQL数据库设置有三个表 - 用户,书籍和事件。用户非常自我解释,书籍只是书籍和各种信息的集合,然后事件有这样的设置。

|  UserID  |  BookID  |  StartDate  |  EndDate  |
|    1     |    2     |   6-10-15   |  6-12-15  |
|    1     |    3     |   6-13-15   |  6-16-15  |

现在我正计划让我的应用被小群人使用,但我担心如果我想扩展它,我的SQL数据库可能会限制它。 我的问题是:如果我最终拥有成千上万的用户和数百万的“事件”,我的当前架构是否能够处理负载?

我只是担心当我遇到大量事件时,我很难快速恢复数据。我考虑为每个用户创建一个新的数据库,并拥有一个共享的书籍等公共数据库,但我不知道如何处理朋友之间的信息/消息/书籍共享。

关闭,使用Users / Books / Events的单个数据库将完成工作。我对其他人对进一步分离数据的看法感到好奇。

1 个答案:

答案 0 :(得分:2)

SQL Server具有正确配置的数据库架构,可以处理数万或数亿行,并具有相当好的性能。当然,这取决于你正在做什么......如果你只是按日期/用户/书查找事件,那么这个架构就没问题了。您需要正确索引正确的列,但数百万行没有问题。

我怀疑,您尝试将用户链接到事件,并且每个事件可能有多个用户(每个用户有多个事件)。在这种情况下,您需要一个联结表来指向不同事件的用户。

Users
  UserID int

Events
  EventID int
  <dates, or whatever>

EventUsers
  UserID int (Foreign key to Users.UserID)
  EventID int (Foreign key to Events.EventID)