用于具有自定义用户标签和字段的大型数据跟踪器的数据模型或数据库系统

时间:2011-07-15 22:17:37

标签: database-design reporting relational-database non-relational-database

我想创建一个允许跟踪项目和相关字段的应用程序。例如,我可能想跟踪我喝多少咖啡,因此我会创建一个咖啡入口,并可以发布更新,例如1杯咖啡,8盎司,100毫克咖啡因,从特定位置购买,在这个时候喝醉了。我还想跟踪每次更新,以便稍后查看每个更新。但是,我想跟踪的其他项目可能有完全不同的领域(比如书籍有标题,可以按照享受的方式排名)。

我希望能够对数据进行标记/分类,然后对此数据运行查询/报告。例如,我可能想知道在一定时间内我在食物上花了多少钱。这将查询带有食品标签的所有商品,根据他们所有的时间字段进行过滤,并总结所有商品的成本字段。

我想我可以使用一个非规范化的关系数据库来完成这项工作,并在一个表中包含所有项目更新。如果我在该表中内置了默认字段,例如我说的那些字段,加上可能有一些额外自定义字段的空格,我想我可以做相当快速的查询。一个缺点是向项目添加新标记将涉及复制许多记录。如果标记列数量固定,可以修复,可以添加新标记但这会限制项目标记的数量。

是否有更好的关系数据模型可以更好地平衡动态字段,快速查询和快速插入/修改?我想知道是否有一个非关系数据库平台也能更好地工作。我查看了图形数据库,并想知道这是否是一个好主意,因为它似乎更有活力,但我不认为它更快。

1 个答案:

答案 0 :(得分:0)

我决定使用IndexedDB(似乎是抽象的,不使用表),或者有一个系统,我按类别为每个用户创建表。给定类别中的项目往往具有相同的字段,因此不应该为此浪费太多空间,并且我还可以为所有数字字段保留每个项目的总和记录。