我正在构建一个应用程序,该应用程序可以查看人们的会话时间和时间表,并试图确定存储可查询数据的最佳方式。
我有两个需要使用开始时间和结束时间连接在一起的数据集。
一个非常简化的示例: 表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分钟不等。
你们中有没有可爱的人有我应该研究的聪明建议?
谢谢!