我已声明性地定义的下表(非常简化的版本):SQLAlchemy的许多一对多关系声明性表
class Profile(Base):
__tablename__ = 'profile'
id = Column(Integer, primary_key = True)
name = Column(String(65), nullable = False)
def __init__(self, name):
self.name = name
class Question(Base):
__tablename__ = 'question'
id = Column(Integer, primary_key = True)
description = Column(String(255), nullable = False)
number = Column(Integer, nullable = False, unique = True)
def __init__(self, description, number):
self.description = description
self.number = number
class Answer(Base):
__tablename__ = 'answer'
profile_id = Column(Integer, ForeignKey('profile.id'), primary_key = True)
question_id = Column(Integer, ForeignKey('question.id'), primary_key = True)
value = Column(Integer, nullable = False)
def __init__(self, profile_id, question_id, value):
self.profile_id = profile_id
self.question_id = question_id
self.value = value
资料链接经由许多一对多关系对问题。在链接表(答案)中,我需要存储答案的值。
该文件说我需要使用一个关联对象来做到这一点,但它令我困惑,我无法让它工作。
如何使用Answer作为中介表为Profile和Question表定义多对多关系?
编辑修复断开的文档链接。 – rbp 2012-04-11 11:56:47
这看起来不对。你的答案看起来像只通过多对一的关系将每一边链接到关联表。没有提到多对多,即以下用法意味着orm级别的多对多:Profile.questions – 2014-02-24 19:46:31