Flask 多对多关系炼金术

Flask 多对多关系炼金术,flask,flask-sqlalchemy,Flask,Flask Sqlalchemy,我正在学习Flask,我决定构建一个简单的市场应用程序。我有两种类型的用户,卖家和买家。我创建了一个用户类,它有两个子类buyer和seller。卖家应该有这种能力上传一些产品,以便销售。因此,我应该创建一个类,它是seller的子类。我认为,由于用户和买方之间的关系是多对多的,产品和卖方之间的关系应该是多对多的 如果到目前为止我做了一些正确的事情,我应该如何创建这个新表 以一种不从卖方继承的方式创建产品数据库会更有益。通过另一个表将用户数据库与产品关联起来,如下所示: class User(d

我正在学习Flask,我决定构建一个简单的市场应用程序。我有两种类型的用户,卖家和买家。我创建了一个用户类,它有两个子类buyer和seller。卖家应该有这种能力上传一些产品,以便销售。因此,我应该创建一个类,它是seller的子类。我认为,由于用户和买方之间的关系是多对多的,产品和卖方之间的关系应该是多对多的


如果到目前为止我做了一些正确的事情,我应该如何创建这个新表

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

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"))