2012-02-02 90 views
0

我正在开发类似于Google日历的项目。要创建它,我正在使用ASP.NET。我希望用户能够填充他们自己的日历条目,然后对照其他用户的日历条目进行交叉检查,以便检查可以进行会议的理想时间。如何在表格中存储日期

但我不确定什么是最好的方式来表示这在数据库中,但是。

我有一个用于存储他们的姓名,ID,密码的用户表。我明白这一点,为什么/如何创建它。

所以我想要一个用户日历表 - 想一想,我猜想最好的方法是使用一个由用户id组成的表格 - 但那么代表每个小时的用户一天?如果我想填充一个数据库,比方说,今天提前3年。使用标识用户的主键和每天甚至每小时一个单独的列来查询单个数据库是不切实际的(更不用说15分钟了!)。

这样做的最好方法是什么?如果你需要阐述,请问,我试图尽可能清楚地解释这个问题,但在讨论这样一个复杂的问题时很难不含糊。

+0

此外,作为旁注,Google日历如何处理? – 2012-02-02 01:15:51

+2

看起来你似乎试图用空的日历条目填充数据库。为什么不在数据库中创建一个记录,当有事件发生时,那么数据库中没有记录? – 2012-02-02 01:22:03

+0

好吧,刚刚在我脑海里跑过来,遇到了一个简单的问题。如果我有一百万用户的数据库,每个用户有10个事件,那么这1000万个事件要在一个表中搜索。他们将有一个外键识别用户,但这不是效率很低吗? – 2012-02-02 01:42:24

回答

1

您只能存储按其开始和结束(或开始和持续时间)存储的事件。您以编程方式填写时隙表。没有重叠事件的日/时间是空的。

+0

我真的感到非常慢!非常感谢你! :)所以在我的数据库中,我将有一个主键来标识用户,日期,开始时间和结束时间。我交叉检查,其他任何东西都是免费的!很简单! – 2012-02-02 01:29:07