我有很多用户,想要获得他们购买的所有产品的清单。我目前用
做到这一点list_of_products = [user.products.all() for user in all_users]
User表和Product表通过多对多关系连接。我注意到这不能很好地扩展。如果用户数量增加,可能需要很长时间。我试图了解这是否是由于执行呼叫时的开销,还是仅仅因为需要更多产品而进行扩展?
基本上,检索用户列表的所有产品的最快方法是什么。
以防万一,这是表格
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
...
products = db.relationship('product',
secondary=sales,
lazy='dynamic')
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True)
...
sales = db.Table(
'sales',
db.Column('product_id', db.Integer, db.ForeignKey('product.id')),
db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
)