Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何知道何时需要另一个实体而不是属性?_Python_Google App Engine - Fatal编程技术网

Python 我如何知道何时需要另一个实体而不是属性?

Python 我如何知道何时需要另一个实体而不是属性?,python,google-app-engine,Python,Google App Engine,我在GAE做一个项目,我的工作订单中有产品。这些产品又有与之关联的交易,这些交易可能发生在不同的日期和地区。我想到了不同的方法来实现这一点,从一个极端到另一个极端 第一个极端是将所有带有日期和区域的事务作为一个大JSON对象存储在产品的JsonProperty中。另一个是每个产品/区域都有一个实体,每个与该产品/区域关联的交易都有一个实体 我不喜欢这两种方法中的任何一种,因为第一种方法有可能达到每个实体1MB的限制(虽然不太可能),并且可能需要不必要的处理,而第二种方法听起来非常浪费(有太多的对

我在GAE做一个项目,我的工作订单中有产品。这些产品又有与之关联的交易,这些交易可能发生在不同的日期和地区。我想到了不同的方法来实现这一点,从一个极端到另一个极端

第一个极端是将所有带有日期和区域的事务作为一个大JSON对象存储在产品的JsonProperty中。另一个是每个产品/区域都有一个实体,每个与该产品/区域关联的交易都有一个实体

我不喜欢这两种方法中的任何一种,因为第一种方法有可能达到每个实体1MB的限制(虽然不太可能),并且可能需要不必要的处理,而第二种方法听起来非常浪费(有太多的对象具有最小的内容,但它们会生成索引)


在这两者之间有很多选择,比如每个产品/区域有一个实体,其中包含一个较小的JSON对象,但我不知道如何选择。我是否可以问自己一些关键问题,以确定何时需要另一个实体或何时一个财产足够?

没有明确的规则,最佳技术取决于您的具体情况。我有一种情况,在重复pickle属性中存储一个数据列表,这对我来说非常有用。不要忘记,您可以压缩JSON和pickle属性。文本数据是高度可压缩的,所以你可以在1MB中融入相当多的内容。我知道这里没有一个简单的答案,但是我想知道在选择做什么的时候是否有任何关键点要考虑。我想我可以用任何一种方式来做,一开始一切都会很好。我的问题是,我担心今天看起来很好的事情可能会在几个月后带来问题。