python+flask开发属于自己的个人轻量级web服务网站(十)

数据库关系设计实战

假设我希望设计这三张表:分别是user、article、tag表,分别代表用户信息、文章信息、标签信息。
其中用户和文章表之间是一对多的关系,文章和标签之间是多对多的关系。

class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(100),nullable=False)
    content = db.Column(db.text,nullable=False)

class Tag(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    tag = db.Column(db.String,nullable=False)

article_tag = db.Table('article_tag',
                       db.Column('article_id',db.Integer,db.ForeignKey('article.id'),primary_key=True),
                        db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'),primary_key=True)
                       )

db.create_all()

创建完成后,我们在数据库中查看一下:


9.png

可以看到通过一张中间表article_tag将article表和tag表完成了多对多的映射关系,

你可能感兴趣的:(python+flask开发属于自己的个人轻量级web服务网站(十))