1

我正在 appengine 中制作一个系统,但找不到在数据存储区中实现此功能的正确方法。我可以在普通的关系数据库中这样做,但就是无法理解这一点。

数据存储区中是一个实体,该实体每天都有“关闭”和“打开”时间。

到目前为止,这一切都很容易,但是:有时一天内可能会有 2 次“打开”和“关闭”时间。

任何人都可以就正确的实施提供一些建议吗?

4

2 回答 2

2

由于您没有指定您使用的是 Java、Python 还是 Go,所以我将给您一个 Python 示例,但一般概念可以在任何一个中实现。

Python 具有包含“重复”属性标志的 NDB API(比 DB API 更新):https ://developers.google.com/appengine/docs/python/ndb/properties#repeated

当您重复某个属性时,“该属性采用基础类型的值列表,而不是单个值。”,因此您可以指定多个打开和关闭时间。

当您检索特定日期的信息时,您可以循环浏览列表以查看您处理此信息的时间是否介于打开/关闭窗口之一之间。如果找到一个打开/关闭,则中断循环并处理请求。

我强烈推荐的一件事是跟踪打开/关闭对并消除与验证的任何重叠。这将使您的处理更容易。

于 2012-10-30T22:08:54.103 回答
1

您可以创建一个模型来保存每对开闭日期,让我们将其命名为WorkingPeriod。然后,在您的主要实体中,您可以拥有嵌入WorkingPeriod值列表或Key指向WorkingPeriod实体的列表。这取决于哪种方法最适合您的需求。

希望这可以帮助!

于 2012-10-31T06:56:52.853 回答