- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想要一些关于如何最好地组织我的 django 模型/数据库表以将数据保存在我的 webapp 中的建议
我正在设计一个站点,用于保存来自赛车模拟游戏的用户遥测数据。所以会有一个桌面配套应用程序,每 0.1 秒对游戏数据进行一次采样,获取各种信息(汽车、赛道、速度、 throttle 、刹车、离合器、转速等)。例如,在 2 分钟的比赛中,每个变量都将包含 1200 个数据点(每秒 10 个样本 * 120 秒)。
这里重要的是,这个数据列表可以包含多达 20 个变量,并且将来可能会增加。所以 1200 * 您拥有的变量数是单个比赛 session 的数据量。如果单个用户提交 100 个 session ,并且有 100 个用户....数据量加起来很快。
然后,该应用程序会将比赛 session 的所有这些数据发送到网站的数据库。数据必须通过 CSV 文件在游戏和网站之间传输。所以在结构上我仅限于 CSV 可以做什么。然后,该网站将允许您选择比赛时段/圈数,并将此信息绘制在单独的时间序列图上(针对每个变量),重要的是,您可以将自己的时段与其他人的时段进行对比,以查看差异所在
我的问题是如何构建这样一个数据库来保存这么多信息?
我想到的最简单的结构是为每个赛道设置一个单独的表格,然后每一行/条目将是该赛道上的一个比赛时段。此表中的字段将是上面的变量。
我遇到的问题是:
1) 上面列表中的大多数变量都是时间序列数据而不是单个值(例如,var speed 可能看起来像:70、72、74、77、72、71、65,其中值是间隔 0.1 秒的样本在整个圈内分开)。您如何将此类信息存储在表/字段中?
2) 上面列表中每个变量的长度对于任何一场比赛来说总是相同的长度(如果你的一圈用了 1 分 35 秒,那么你所有的变量将只捕获该时间长度的数据),但是给定我希望能够相互比较不同的圈数,每一圈的 session 时间都会不同。换句话说,无论我为那些变量存储时间序列数据,它的大小必须是可变的
任何想法将不胜感激
最佳答案
可以帮助您处理超大表的一件事是分区。根据您为问题设置的 postgresql 标记判断,请在此处查看:http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html
但一开始我会选择一个简单的表,由一组合理的索引支持。据我了解,表中的每个数据条目都将由比赛 session ID、玩家 ID 和时间指示器标识。这些列应该根据您的查询要求用索引覆盖。
关于你的两个问题:1)您将这些信息存储为简单的整数。请记住为这些列设置正确的数据类型。例如如果您 100% 确定某些值会非常小,则可以使用 smallint
数据类型。更多关于整数数据类型的信息:http://www.postgresql.org/docs/9.3/static/datatype-numeric.html#DATATYPE-INT
2) 如果您的每个 var 列表都是表中的不同行,那将不是问题。您可以插入任意数量的内容。
所以,总结一下。我将从一个非常简单的单表模式开始。从 Django 的角度来看,这看起来像这样:
class RaceTelemetryData(models.Model):
user = models.ForeignKey(..., index_db=True)
race = models.ForeignKey(YourRaceModel, index_db=True)
time = models.IntegerField()
gas = models.IntegerField()
speed = models.SmallIntegerField()
# and so on...
此外,您应该(手动)为 (user_id, race_id, time) 列创建一个索引,以便查找有关一次比赛的数据(并对其进行排序)会很快。
将来,如果您发现这个单表的性能太慢,您可以尝试使用额外的索引或分区。 PostgreSQL 在修改现有数据库结构方面非常灵活,因此您应该不会有太多问题。
如果您决定向集合中添加一个新变量,您只需向表中添加一个新列即可。
编辑:
最后你得到一个表,它至少有这些列:user_id - 指定此行与哪些用户数据有关。race_id - 指定此行与哪些比赛数据有关。time - 确定表示数据的正确顺序。
这样,当您想要获取有关 Joe 的第 5 场比赛的信息时,您将查找具有 user_id = 'Joe_ID' 和 race_id = 5
的行,然后按时间列对所有这些行进行排序.
关于python - Django数据库规划-时序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27705231/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!