问题描述
|
我正在创建一个计划程序Web应用程序,该应用程序将其数据存储在mysql数据库中,现在我正在尝试找出在其中建立表的最佳方法。
它会支持多个用户,我希望它能够处理大量的用户群(比方说成千上万)。
每个用户将具有一些与之关联的常规数据(用户名,密码,首选项)以及它们的事件。
每个用户可以拥有0到1000s的事件,每个事件都具有诸如开始时间,结束时间,名称等信息。
因此,将会有许多这样的情况:
用户
用户名
密码
优先
大事记
名称
开始时间
时间结束
另一件事是,我希望每个事件都是可查询的。我希望能够修改___用户的事件#。
我该如何设置它,使其不会变得太复杂或太慢?
解决方法
user table
user_id,username,password,preferences
将user_id作为主键。
event table
event_id,user_id,name,start_time,end_time
将{event_id,user_id}作为主键。
这应该怎么办?如果您期望成千上万个事件,其中许多事件可以重复但与不同的用户相关,则可以创建一个没有user_id的事件表,然后创建一个新表来保存{event_id,user_id}组合。
PS:不要以纯文本形式存储密码;考虑将首选项移动到单独的表。