我一直在不断改变我的数据库结构,只是找不到一个好的解决方案。
我的数据库存储习惯,每个文档是不同的习惯。习惯领域掌握有关习惯的信息,但是我在努力挣扎的是如何构建完成情况/历史记录。
与任务不同,习惯是一遍又一遍地完成的,这意味着我需要存储所有信息,并能够轻松查询日期范围等信息。
第一 我的第一个想法是文档的子集合,每个文档都包含诸如日期,完成状态等信息。
尽管这个想法听起来不错,但问题仍然存在。我使用的是Flutter,在StreamBuilder中,事实证明很难访问子集合。
第二 我的第二个想法是在习惯中使用文档字段。这样,我可以有一个名为complete的数组,并且该数组将存储带有日期,状态等的Map。
有了这个主意,我做到了最远,但是我要努力的是改变数组Map中一个字段的状态。
第三 我的第三个也是最近一个想法,尽管我还没有取得太大进展,但是我想我可以在习惯文档字段中使用嵌套地图。称为历史记录的字段将等同于地图,然后在地图内部,字符串格式的日期将等同于存储所有基本信息的地图。
这个想法在很多方面都很棒,但是当日期为字符串格式时,按日期范围查询数据将不可避免地很困难。
请让我知道哪种结构更理想,或者是否有更好的方法。我使用的语言是Flutter,因此我需要在cloud_firestore软件包的准则内进行操作。任何帮助将不胜感激!