Skip to content
sql
Model = declarative_base()


class UserMTMCourse(Model):
    """ 第三张表,绑定User表和Course表的多对多关系,且该表会在数据库中真实的被创建出来 """
    __tablename__ = "tb_user_mtm_course"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键ID')
    uid = db.Column(db.Integer, db.ForeignKey("tb_user.id"), comment="用户ID")
    cid = db.Column(db.Integer, db.ForeignKey("tb_course.id"), comment="课程ID")
    created_time = db.Column(db.DateTime, default=datetime.now, comment="购买时间")
    user_ = relationship('User', uselist=False, backref=backref('course_list', uselist=True, lazy='dynamic'))
    course_ = relationship('Course', uselist=False, backref=backref('user_list', uselist=True, lazy='dynamic'))
    db.UniqueConstraint('uid', 'cid', name='uc_id')
    __table_args__ = (
        # 操蛋的是,pycharm中通过database提供的ddl建表语句中,找不到这个联合索引的SQL语句,搞得我以为这个姿势不对
        # 后来,我自己去数据库执行show create table tb_user_mtm_course;才找到联合索引,UNIQUE KEY `uc_id` (`uid`,`cid`),
        db.UniqueConstraint('uid', 'cid', name='uc_id'),
    )