首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Schema建议

SQL Schema建议
EN

Stack Overflow用户
提问于 2015-06-08 18:03:22
回答 1查看 50关注 0票数 0

我对SQL相当陌生,尤其是在PHP中使用SQL,我目前正在开发一个应用程序,允许用户跟踪他们的阅读情况。第一个版本将有一个简单的日历,允许您输入您开始的日期和您应该完成的时间。

我的问题是我的用户登录和管理系统。现在,我的SQL数据库设置有三个表--用户、书籍和事件。用户是相当不言自明的,图书只是图书和各种信息的集合,然后事件就有了这个设置。

代码语言:javascript
复制
|  UserID  |  BookID  |  StartDate  |  EndDate  |
|    1     |    2     |   6-10-15   |  6-12-15  |
|    1     |    3     |   6-13-15   |  6-16-15  |

现在,我正在计划让一小群人使用我的应用程序,但我担心如果我想要扩展它,我的SQL数据库可能会限制它。我的问题是:如果我以成千上万的用户和数以百万计的“事件”结束,我的当前模式是否能够处理负载?

我只是担心,当我遇到很多事件时,我会很难很快地把数据拿回来。我考虑为每个用户创建一个新的数据库,并有一个共享的公共数据库与书籍等,但我不知道如何处理共享信息/消息/书籍之间的“朋友”。

从一开始,包含用户/图书/事件的单个数据库就可以完成任务。我只是好奇其他人对进一步分离数据的看法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-08 18:21:26

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

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

代码语言:javascript
复制
Users
  UserID int

Events
  EventID int
  <dates, or whatever>

EventUsers
  UserID int (Foreign key to Users.UserID)
  EventID int (Foreign key to Events.EventID)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30716056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档