我对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的单个数据库将完成工作。我对其他人对进一步分离数据的看法感到好奇。
答案 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)