多对多关系烧瓶sqlalchemy

时间:2020-02-20 13:49:16

标签: flask flask-sqlalchemy

我正在学习Flask,因此决定构建一个简单的市场应用程序。我有两种类型的用户,卖方和买方。我创建了一个有两个子级的用户类(买方,卖方)。卖方应具有上载某些产品以进行销售的能力。因此,我应该创建一个作为卖方子级的类。我认为,既然用户与买方之间的关系是多方面的,那么产品与卖方之间的关系就应该多对多。

如果到现在为止我已经做了一些事情,那么我应该如何创建这个新表。

1 个答案:

答案 0 :(得分:1)

以一种不继承卖方的方式创建产品数据库会更加有益。并通过另一个表将用户数据库与产品相关联,如下所示:

class User(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    ...
class Product(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    ...
class Order(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    product_id = db.Column(db.Integer, db.ForeignKey('product.id'))
    user = db.relationship('User', backref=db.backref("order", cascade="all, delete-orphan"))
    product = db.relationship('Product', backref=db.backref("order", cascade="all, delete-orphan"))