【发布时间】:2020-11-21 23:47:42
【问题描述】:
假设我有 2 个表,表 1 包含用户信息,表 2 包含分支信息。 表 1 和表 2 以多对多的关系相互关联。 例如,1 个用户可以在多个分支工作,1 个分支可以有多个用户。 所以这里没有父子概念。我想知道是否必须使用架构创建另一个表并使用外键将其与用户和分支表相关联,或者我应该创建一个关联表。
我已经这样做了:
class UserBranchMap(db.Model):
id = db.Column(db.Integer, primary_key=True)
branch_id = db.Column(db.Integer,db.ForeignKey('branch.id'))
branch = db.relationship("Branch", backref=db.backref("UBMbranch", lazy="dynamic"))
user_id = db.Column(db.Integer,db.ForeignKey('user.id'))
user = db.relationship("User", backref=db.backref("UBMuser", lazy="dynamic"))
created_at = db.Column(db.VARCHAR(20), nullable = False)
created_by = db.Column(db.VARCHAR(20), nullable = False)
class UserBranchMapSchema(ma.Schema):
branch = fields.Nested(branch_schema)
user = fields.Nested(user_schema)
class Meta:
fields = ('branch_id','user_id','created_at','created_by')
userbranchmap_schema = UserBranchMapSchema()
userbranchmaps_schema = UserBranchMapSchema(many = True)
关联表和这个映射表有什么区别?
【问题讨论】:
标签: python-3.x flask sqlalchemy flask-sqlalchemy flask-marshmallow