我正在设计用于生产管理的软件。我的应用允许我的用户执行以下操作:
我在设计Schedule的数据结构时遇到了麻烦。
我现在有以下内容:
class Produce(db.Model):
crop = db.StringProperty(required=True)
duration_sow = db.IntegerProperty()
duration_transplant = db.IntegerProperty()
duration_storage = db.IntegerProperty()
并且计划在JSON中看起来像这样:
a_schedule = {
"crops": [ {"produce": Key(123), "quantity", 15}, {"produce": Key(234), "quantity", 16} ],
"created_by": ....
}
由于Appengine数据存储区不支持元组,因此我不确定如何存储" crop"我的模型中的属性。
选项1
我考虑过使用两个阵列,
crops_key = [ Key(123), Key(234), .. ]
quantity = [ 15, 16, ... ]
但是删除和修改可能会有点棘手。这是有效的,但我经常遇到这种模式,我只想看看那里的专家有什么建议。
如果有所作为,我正在使用python。
答案 0 :(得分:0)
db中有一个ListProperty。
https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#ListProperty
允许您存储多个键。 我在一个基于db的旧项目中同步维护两个列表属性。
我注意到您正在使用db,如果您没有重要的代码库,请考虑转移到ndb。 ndb有更好的存储这些数据的模型。阅读ndb中的StructuredProperties。 https://developers.google.com/appengine/docs/python/ndb/properties