我建立了三部分产品数据库。 每个部分都有包含标签的“子”部分。 但是,我越是同它合作,它感到更加不稳定。 此外,我每次增加一次,都需要更多的法典才能工作。
产品是零部件,每一部分都是一类产品。 每个产品、部件和类型都有标签。 每个语言都有一个标签。
产品包含2个清单中的部分。 缺省部分(每类一个)和选修部分清单。
现在我想增加货币组合,并作出决定,重新调整我处理此事的整个方式。
我想要得到的结果是一份清单,列出所有产品目标,其中包括与部件对应的名称、描述、价格、所有部件和所有类型。 对于这些正确的语言标签。
与此类似:
product
- name
- description (by language)
- price (by currency)
- parts
- part (type name and part name by language)
- partPrice (by currency)
我目前的设置是一个荒谬的混合体。 参考资料和db.ListProperty(db.key)
获取所有数据是需要多功能通路、配对字塔和数据储存电话的斜线。 其实,它只是一片东西。
重读(未经测试)就是这样。
class Products(db.model)
name = db.StringProperty()
imageUrl = db.StringProperty()
optionalParts = db.ListProperty(db.Key)
defaultParts = db.ListProperty(db.Key)
active = db.BooleanProperty(default=True)
@property
def itemId(self):
return self.key().id()
class ProductPartTypes(db.Model):
name= db.StringProperty()
@property
def itemId(self):
return self.key().id()
class ProductParts(db.Model):
name = db.StringProperty()
type = db.ReferenceProperty(ProductPartTypes)
imageUrl = db.StringProperty()
parts = db.ListProperty(db.Key)
@property
def itemId(self):
return self.key().id()
class Labels(db.Model)
key = db.StringProperty() #want to store a key here
language = db.StringProperty()
label = db.StringProperty()
class Price(db.Model)
key = db.StringProperty() #want to store a key here
language = db.StringProperty()
price = db.IntegerProperty()
这里的主要事情是,我把拉比斯和价格分开。 因此,这些产品可以包含任何产品、部件或种类的标签和价格。
因此,我很奇怪的是,从建筑角度看,这是否是一个牢固的解决办法? 即使每个模式有数千个条目,这还是会维持吗?
此外,欢迎以良好方式检索数据的任何假设。 我目前的解决办法是,首先获取所有数据,然后通过浏览,把数据贴在字典上,但感觉到这样的情况可能失败。
.fredrik