現在、このモデルを使用して appengine ndb データストアにデータを保存しています
class BundleModel (ndb.Model):
product_vals=ndb.StructuredProperty(ProductModel,repeated=True)
ProductModel は次のとおりです。
class ProductModel(ndb.Model):
p_created=ndb.DateTimeProperty(auto_now_add=True)
p_updated=ndb.DateTimeProperty(auto_now=True)
p_title=ndb.StringProperty()
p_link=ndb.StringProperty()
p_categ=ndb.StringProperty()
p_categ_alt=ndb.StringProperty()
p_value=ndb.FloatProperty()
p_location=ndb.StringProperty()
p_avail=ndb.BooleanProperty(default=True)
p_mod=ndb.BooleanProperty(default=False)
BundleModel をデータストアに配置するだけで、ProductModel エンティティは各エンティティにリストとして埋め込まれます。
これがデータを保存するための高価で遅い方法であるかどうか疑問に思っています。BundleModel を親として、各 ProductModel を子エンティティとして格納する方がよいでしょうか?
この場合、BundleModel の各リクエストは、ProductModels の複数のリクエストに変換されます。データの大きなチャンクに対する 1 つのリクエストと、データの小さなチャンクに対する複数のリクエスト (約 10 程度) のトレードオフはありますか? データの書き込みに関しては、1 つの大きなチャンクを変更するのではなく、小さなチャンクを個別に書き込みます。
コスト、速度、およびその他のパラメーターに関して、このような変更の影響は何ですか?
ありがとう!