构建此数据库表中数据的最佳方法

时间:2012-07-28 00:38:07

标签: mysql sql database database-design structure

这是关于我应该设置数据库的最佳方式的一般性问题,它不是特定于软件,而是信息它是MYSQL。

我正在监控1000个“房屋”,并且在给定时间内有多少人在该房屋中出现以后用于某些统计数据,例如:

在特定时间范围内哪个房子通常最充足 平均容量一般 所有房屋和特定房屋最繁忙的时间框架。

我将检查每小时有多少人在场。

设置这个mysql表的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

看起来你会(可选地)想要每个房子的条目(一个房屋表来描述每个位置,带有某种ID)。

然后你需要一个包含房屋ID,人数和样本日期/时间的交易表。

通过这种方式,您可以分析所需内容

e.g。

House
   HouseID int
   Address1 varchar
   etc etc..

Attendance
   RecordID int (optional I suppose)
   HouseID int
   People int
   SampleDate datetime

对像平均值这样的东西的查询很容易

SELECT AVG(People) FROM Attendance WHERE HouseID = 1 AND SampleDate BETWEEN Date1 AND Date2

在特定时间范围内哪个房子最充足

SELECT TOP 1 HouseID FROM Attendance GROUP BY HouseID ORDER BY SUM(People) DESC

免责声明:部分/全部查询可能无效:)

编辑:他们确实有效!这是一个在操作中显示它们的SQL小提琴

http://sqlfiddle.com/#!3/293e4/8