我正在开发一个 GAE Python 项目,其中包含项目和项目交易。
起初,我们尝试使用带有引用属性的物品种类和交易种类,但这会使查询变得复杂。
所以我们切换到一个多合一版本,交易数据直接存储在项目中,这导致很多属性没有被使用,因为并非所有项目都与交易有关。
我希望它可以加快应用程序的速度,但这是最好的方法吗?
知道:
- 我们希望有大量的交易和更多的项目。
- 我们需要检查交易状态(实际存储在项目的状态中)。
- 每个项目只能进行一次交易,但有许多不同类型的交易。
有更好的解决方案吗?
编辑:
问题是我主要使用事务属性查询项目,但一次最多只有 2 个 where 子句,而且我经常更新事务。
其实我有这样的事情:
类 MyItem(db.Model):
owner = db.ReferenceProperty(MyUser)
descr = db.StringProperty()
status = db.IntegerProperty() # contains item status / transaction status
tx_actor = db.emailProperty()
tx_token = db.StringProperty()
latest_tx_date = db.DateTimeProperty()