我对SQL相当陌生,尤其是在PHP中使用SQL,我目前正在开发一个应用程序,允许用户跟踪他们的阅读情况。第一个版本将有一个简单的日历,允许您输入您开始的日期和您应该完成的时间。
我的问题是我的用户登录和管理系统。现在,我的SQL数据库设置有三个表--用户、书籍和事件。用户是相当不言自明的,图书只是图书和各种信息的集合,然后事件就有了这个设置。
| UserID | BookID | StartDate | EndDate |
| 1 | 2 | 6-10-15 | 6-12-15 |
| 1 | 3 | 6-13-15 | 6-16-15 |现在,我正在计划让一小群人使用我的应用程序,但我担心如果我想要扩展它,我的SQL数据库可能会限制它。我的问题是:如果我以成千上万的用户和数以百万计的“事件”结束,我的当前模式是否能够处理负载?
我只是担心,当我遇到很多事件时,我会很难很快地把数据拿回来。我考虑为每个用户创建一个新的数据库,并有一个共享的公共数据库与书籍等,但我不知道如何处理共享信息/消息/书籍之间的“朋友”。
从一开始,包含用户/图书/事件的单个数据库就可以完成任务。我只是好奇其他人对进一步分离数据的看法。
发布于 2015-06-08 18:21:26
具有正确配置的数据库架构的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)https://stackoverflow.com/questions/30716056
复制相似问题