【发布时间】:2010-12-24 09:49:44
【问题描述】:
背景:
我有一个 cvs 文件的文件层次结构,用于多个位置,这些位置按它们涵盖的日期命名……具体而言是按月。文件夹中的每个 cvs 文件都以位置命名。
例如', 文件夹名称:2010 年 2 月
包含: 位置1.csv location2.csv
每个 CSV 文件都包含这样的记录:
2010-06-28, 20:30:00 , 0
2010-06-29, 08:30:00 , 0
2010-06-29, 09:30:00 , 0
2010-06-29, 10:30:00 , 0
2010-06-29, 11:30:00 , 0
记录列的含义(列名):
Date, time, # of sessions
我有一个 perl 脚本可以从这个混乱中提取数据,最初我打算将它存储为 json 文件,但我认为数据库可能更适合长期...比较每年的趋势...有趣像这样的东西。
第 2 部分 - 我的问题/问题:
所以我现在有一个 REST 服务,它使用测试数据库生成 json。我的问题是[我不擅长数据库设计],如何最好地为此设计数据库后端?
我认为以下表格就足够了并保持简单:
Location: (PK)location_code, name
session: (PK)id, (FK)location_code, month, hour, num_sessions
除了给定月份或月份中的星期几外,我还需要能够在一周的几天内平均每个小时的会话数(加上最小值和最大值)。我一直在使用 perl 哈希来执行此操作,并且正在尝试确定如何最好地使用数据库来实现它。
您认为应该使用存储过程吗?
关于数据库,根据这里收集的信息,它将是 postgresql 或 sqlite。 如果 postgresql 没有令人信服的理由,我会坚持使用 sqlite。
我应该如何以及在哪里将数据与运行小时数进行比较。我正在存储时间 yaml 文件中的操作。我目前将数据中的小时“匹配”到来自 yaml 的哈希来执行此操作。数据库会打开更简单的方法吗?我想我会像现在一样做这个比较,然后插入数据。可以通过以下方式召回:
SELECT hour, num_sessions FROM session WHERE location_code=LOC1
由于只有几个小时的营业时间,我无需担心。 我是否应该像现在一样计算所有结果,然后存储为统计表 不同的“报告”?这,而不是按需处理?这看起来如何?
不管怎样……我在闲逛。
感谢阅读!
布布诺夫
【问题讨论】:
标签: database-design