我想创建一个允许跟踪项目和相关字段的应用程序。例如,我可能想跟踪我喝了多少咖啡,因此我会创建一个咖啡条目,并可以发布更新,例如从特定位置购买的 1 杯 8 盎司咖啡、100 毫克咖啡因,在这种时候喝醉了。我还想跟踪每个更新,以便以后查看每个更新。但是,我想要跟踪的其他项目可能具有完全不同的领域(例如书籍有标题并且可以根据享受程度进行排名)。
我希望能够对数据进行标记/分类,然后对这些数据运行查询/报告。例如,我可能想查看在某个时间范围内我在食物上花费了多少。这将查询带有食物标签的所有项目,根据他们都拥有的时间字段进行过滤,并总结所有这些项目的成本字段。
我在想我可以用一个非规范化的关系数据库来做到这一点,所有的项目更新都在一个表中。如果我在该表中内置了默认字段,例如我所说的那些,再加上一些额外的自定义字段的空格,我认为我可以进行相当快的查询。一个缺点是向项目添加新标签将涉及复制许多记录。如果有固定数量的标签列,则可以解决此问题,并且可以添加新标签,但这会限制项目具有的标签数量。
是否有更好的关系数据模型可以更好地平衡动态字段、快速查询和快速插入/修改?我想知道是否有一个非关系数据库平台也可以更好地工作。我查看了图形数据库并想知道这是否是一个好主意,因为它看起来更动态,但我不认为它会更快。