在SQL中存储日程表和会话(非Web)以进行查询

时间:2019-05-22 15:23:52

标签: sql sql-server

我正在构建一个应用程序,该应用程序可以查看人们的会话时间和时间表,并试图确定存储可查询数据的最佳方式。

我有两个需要使用开始时间和结束时间连接在一起的数据集。

一个非常简化的示例: 表1:事件

    CREATE TABLE EventsData (
    EventID INT,
    VenueID INT,
    EventDate DATE,
    EventStartTime TIME,
    EventEndTime TIME
    )

表2:会话

    CREATE TABLE SessionData (
    SessionID INT,
    PersonID INT,
    VenueID INT,
    SessionDate DATE,
    SessionStartTime TIME,
    SessionEndTime TIME
    )

我目前正在执行的操作方式是建立一个链接表,其中包含人员和事件ID的逐分钟细分。有点像这样...

    CREATE TABLE Event2Session (
    SessionID INT,
    Minute DATETIME,
    EventID
    )

这将使查询数据的工作变得更加轻松,但是此表(尽管非常薄)将很快变得非常大!

根据当前数据大小,链接表每天大约有200万行,这不是世界末日,但仍然比我想要的还要大。

这样做的主要原因之一是,有时人们会有多个重叠的会话。例如,一个事件通常持续15-30分钟,而一个人的会话时间可能从1分钟到200分钟不等。

你们中有没有可爱的人有我应该研究的聪明建议?

谢谢!

0 个答案:

没有答案