我使用flask-sqlalchemy
建立一個web應用程序,我有以下模式(S):組合鍵在SQLAlchemy的
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)
我完全的noob當涉及到數據庫的設計,所以我真的欣賞我關於一些基本查詢的幾點指示
是否需要
id
這一列?我見過的大多數教程都將其作爲一個專欄(主鍵)。我可以沒有它嗎?特別是在我有另一個主鍵的情況下?假如post_id是外鍵,我如何在Candidate#Name和Candidate#post_id列上有複合鍵約束。
如何「刷新」我的數據庫。在對模型進行了修改之後,如何確保這些更改反映在實際的表中?手動需要
drop_all
和create_all
嗎?最後,
sqlalchemy
文檔是否也適用於flask-sqlalchemy
?
您可能需要打出這些問題;當您在一個問題中發佈多個問題時,您正在讓人們難以向您提供答案。所有'sqlalchemy'文檔也適用於'flask-sqlalchemy'。 –