Flask数据库设计

一对多:
说明:User表用来存用户,artcle用来存文章
关系:文章的author_id引入user表id字段作为外键

class User(db.Model):
    __tablename__ = 'user_table'
    id = db.Column(db.Integer,primary_key=True)
    username = db.Column(db.String(10),unique=True)
    password = db.Column(db.String(16))

class artcle(db.Model):
    __tablename__ = 'artcle_table'
    id  = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(100),nullable=False)
    content = db.Column(db.Text(),nullable=False)
    author_id = db.Column(db.Integer,db.ForeignKey('user_table.id'))
    authors = db.relationship('User',backref=db.backref('artcles'))

通过文章标题找到文章作者:
artcle_data = artcle.query.filter(artcle.title=='标题').first()
return artcle_data.authors.username

通过作者查找他的文章:
user = User.query.filter(User.username == 'ma').first()
return user.artcles

多对多:
说明:文章和标签的关系,一篇文章可以有多个标签,一个标签也可以对应多篇文章
实现:增加一个中间表
文章表:
class Artcles(db.Model):
    __tablename__ = 'Artcles'
    id = db.Column(db.Integer,primary_key=True)
    title = db.Colnum(db.Model,nullable=False)
标签表:
class tags(db.Model):
    __tablename__ = 'tags'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Colnum(db.Model,nullable=False)
中间表:
artcle_tags = db.Table('artcle_tags',
  db.Column('artcle_id',db.Integer,db.ForeignKey('Artcles.id'))
     db.Column('tags_id',db.Integer,db.ForeignKey('tags.id'))
)



























猜你喜欢

转载自blog.csdn.net/weixin_38639882/article/details/82144990