我正在使用flask-sqlalchemy
构建 webapp,并且我有以下模型:
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
candidates = db.relationship('Candidate', backref='post', lazy='dynamic')
def __init__(self, name):
self.name = name
def __repr__(self):
return "<Post %r>" % self.name
class Candidate(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), primary_key=True)
post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
hostel = db.Column(db.String(80))
yes_no = db.Column(db.Boolean)
#votes = db.relationship('Vote', backref='vote', lazy="dynamic")
def __init__(self, name, hostel, post_id, yes_no):
self.name = name
self.hostel = hostel
self.post_id = post_id
self.yes_no = yes_no
def __repr__(self):
return "<Candidate: %r, Post: %r>" % (self.name, self.post.name)
在数据库设计方面我完全是菜鸟,所以我非常感谢一些关于我有的一些基本查询的指针
id
柱子有必要吗?我见过的大多数教程都将其作为一列(特别是主键)。我可以没有它吗?特别是在我有另一个主键的情况下?鉴于 post_id 是外键,我如何对 Candidate#Name 和 Candidate#post_id 列进行复合键约束。
如何“刷新”我的数据库。在对模型进行更改后,如何确保这些更改反映在实际表中?我需要
drop_all
手动create_all
吗?最后,
sqlalchemy
文档是否也适用flask-sqlalchemy
?