SQL 架构建议
SQL Schema recommendations
我是 SQL 的新手,尤其是在 PHP 中使用它时,我目前正在开发一款允许用户跟踪阅读情况的应用程序。第一个版本将有一个简单的日历,允许您输入开始日期和结束日期。
我的问题是关于我的用户登录和管理系统。现在,我的 SQL 数据库设置包含三个表 - 用户、书籍和事件。 Users 很容易解释,Books 只是 Books 和各种信息的集合,然后 Events 有这个设置。
| UserID | BookID | StartDate | EndDate |
| 1 | 2 | 6-10-15 | 6-12-15 |
| 1 | 3 | 6-13-15 | 6-16-15 |
现在我正计划让一小群人使用我的应用程序,但我担心如果我想扩展它,我的 SQL 数据库可能会限制它。 我的问题是:如果我最终有成千上万的用户和数百万的“事件”,我当前的模式是否能够处理负载?
我只是担心当我遇到大量事件时,我将无法快速取回数据。我考虑过为每个用户创建一个新数据库,并与书籍等共享公共数据库,但我不知道如何处理 'friends' 之间的共享 info/messages/books。
马上,具有 Users/Books/Events 的单个数据库将完成工作。我只是好奇其他人对进一步分离数据的看法。
SQL 服务器,如果配置了正确的数据库架构,可以处理数千万或数亿行,性能相当不错。当然,这取决于您在做什么...如果您只是按 date/user/book 查找事件,那么这个模式就可以了。您需要正确索引正确的列,但数百万行没有问题。
不过,我怀疑您正在尝试 link 用户参加活动,并且每个活动可能有多个用户(并且每个用户有多个活动)。在这种情况下,您需要一个联结点 table 将用户指向不同的事件。
Users
UserID int
Events
EventID int
<dates, or whatever>
EventUsers
UserID int (Foreign key to Users.UserID)
EventID int (Foreign key to Events.EventID)
我是 SQL 的新手,尤其是在 PHP 中使用它时,我目前正在开发一款允许用户跟踪阅读情况的应用程序。第一个版本将有一个简单的日历,允许您输入开始日期和结束日期。
我的问题是关于我的用户登录和管理系统。现在,我的 SQL 数据库设置包含三个表 - 用户、书籍和事件。 Users 很容易解释,Books 只是 Books 和各种信息的集合,然后 Events 有这个设置。
| UserID | BookID | StartDate | EndDate |
| 1 | 2 | 6-10-15 | 6-12-15 |
| 1 | 3 | 6-13-15 | 6-16-15 |
现在我正计划让一小群人使用我的应用程序,但我担心如果我想扩展它,我的 SQL 数据库可能会限制它。 我的问题是:如果我最终有成千上万的用户和数百万的“事件”,我当前的模式是否能够处理负载?
我只是担心当我遇到大量事件时,我将无法快速取回数据。我考虑过为每个用户创建一个新数据库,并与书籍等共享公共数据库,但我不知道如何处理 'friends' 之间的共享 info/messages/books。
马上,具有 Users/Books/Events 的单个数据库将完成工作。我只是好奇其他人对进一步分离数据的看法。
SQL 服务器,如果配置了正确的数据库架构,可以处理数千万或数亿行,性能相当不错。当然,这取决于您在做什么...如果您只是按 date/user/book 查找事件,那么这个模式就可以了。您需要正确索引正确的列,但数百万行没有问题。
不过,我怀疑您正在尝试 link 用户参加活动,并且每个活动可能有多个用户(并且每个用户有多个活动)。在这种情况下,您需要一个联结点 table 将用户指向不同的事件。
Users
UserID int
Events
EventID int
<dates, or whatever>
EventUsers
UserID int (Foreign key to Users.UserID)
EventID int (Foreign key to Events.EventID)