【发布时间】:2012-06-23 19:22:45
【问题描述】:
我正在使用 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?
【问题讨论】:
-
你可能想把这些问题分开;在一个问题中发布多个问题时,您使人们更难为您提供答案。所有
sqlalchemy文档也适用于flask-sqlalchemy。
标签: python sqlalchemy primary-key