0
我正在使用帶有ORM映射器的SQLAlchemy。使用SQLAlchemy將會話自動添加到會話ORM
說我有一個Url
類指向DomainName
類是這樣的:
class Url(db.Model):
id = db.Column(db.Integer, primary_key=True)
path = db.Column(db.String(2083))
domain_id = db.Column(db.Integer, db.ForeignKey("domain_name.id"))
domain_name = db.relationship("DomainName")
在我的經驗看來,如果我同時創建一個Url
和DomainName
就足夠了添加一個會話並承諾,另一個也堅持到數據庫。喜歡的東西:
domain = DomainName("www.stackoverflow.com")
url = Url("https://stackoverflow.com/questions/ask", domain)
session.add(url)
session.commit(url)
看來,使用這種方法的一個可以節省一些代碼行,尤其是在情況下創建對象需要創建相關對象的小圖。
事實上,即使是這個例子也可以通過在Url
構造函數中創建DomainName對象來簡化,而不是在外部創建它,並將其作爲參數傳遞給Url
構造函數。
但這是一個很好的做法嗎?還是單獨將每個對象添加到會話更好?