Firebase 时间戳和数据库结构

Firebase 时间戳和数据库结构,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我目前正试图找出保存我的应用程序条目的最佳方法,这样我就可以每天有效地查询条目。我被困在两种不同的方法之间。 为了简化我的问题,假设我正在制作一个日志应用程序。对于此应用程序,日志条目包含{title,timestamp} 方法1: -日志 --[用户识别码] ---日记账分录 进近#2 -日志 --[用户识别码] ---[一天开始的Unix时间戳] ----日记账分录 到目前为止,我倾向于方法#1,特别是因为它可能允许我在过去24小时内通过查询而不是特定的一天获取条目 然而,同时,方法#2允许

我目前正试图找出保存我的应用程序条目的最佳方法,这样我就可以每天有效地查询条目。我被困在两种不同的方法之间。 为了简化我的问题,假设我正在制作一个日志应用程序。对于此应用程序,日志条目包含{title,timestamp}

方法1:

-日志

--[用户识别码]

---日记账分录

进近#2

-日志

--[用户识别码]

---[一天开始的Unix时间戳]

----日记账分录

到目前为止,我倾向于方法#1,特别是因为它可能允许我在过去24小时内通过查询而不是特定的一天获取条目

然而,同时,方法#2允许我使用客户端逻辑更轻松地处理可能稀疏的条目数量,并允许我避免使用任何查询函数。这种方法对我的吸引力在于,我可以生成非常简单的函数来为任何给定的一天的开始生成时间戳,并且我可以将日志条目子化为该时间戳

我真的很想采用方法1,因为这似乎是正确的做法,而且它在很多方面给了我自由,而方法2不会,但我担心第1部分所需的查询函数不是很直接,而且会是一个巨大的草率

如果我采用方法1,是否有具体的查询方式? 我不确定使用orderbychild(时间戳).startAt(开始时间戳)和.endAt(结束时间戳)是否会像直觉上那样工作,因为我在过去尝试过这种方法,但它的行为并不正确

请让我知道我应该采用哪种方法,如果是方法1,我应该如何正确地查询它


谢谢。

您不必选择。根据查询的需要,以多种不同的方式存储数据。如果您还没有决定查询,那么就不可能优化模式。为什么不存储时间戳呢?它不需要任何费用,并且对查询没有影响。(我已经创建了一个实用程序,它只将createdAt、modifiedAt和id添加到我保存/更新的每个文档中。在调试中查看这些值非常有用,即使您不需要它们进行查询。)我现在肯定会按照建议做,并以两种方式存储数据。我知道我很含糊,但我也为我的真实模型joelm存储了这类信息,对于我拥有的每一个模型来说,这确实是非常有用的:)。谢谢你的建议。