モデルの 1 つがデータベースに保存されていない SQLAlchemy セットアップがあります。データは代わりに Web サービスから取得され、他のモデルはそれを参照するための主キーのみを保存します。
SQLAlchemy の関係を使用しながら、これを機能させるにはどうすればよいですか? 現在、データをデータベースにローカルにキャッシュしており、何かが変更されたときに Web サービスから更新していますが、これはデータの冗長コピーを保存していることを意味します。ローカルに保存したくありません。このことを考慮:
Base = declarative_base()
# Web service-backed model
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
username = Column(Unicode(20), nullable=False)
@classmethod
def get(cls, id):
"""Get an instance using data from the web service."""
pass
# Local model
class Document(Base):
__tablename__ = 'document'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('user.id'))
user = relationship(User, backref='documents')
content = Column(UnicodeText)
Document.user
データベースから User モデルを削除し、Web サービスからのみ取得したい (これは簡単です) 一方で、SQLAlchemy (および)によって提供される双方向の関係の利点を維持したままUser.documents
です。
後者を達成するにはどうすればよいですか?