我有一个类System
,其属性node
是int
的列表:
class System:
def __init__(self, node):
self.node = node
# Instantiate as:
sys = System([2,3,4])
我想使用SQLAlchemy来存储它,看来最好的方法是通过ORM using a class to represent the list element type,以便您可以将列表存储在它自己的表中。这将需要以下内容:
class System(Base):
__tablename__ = 'system'
id = Column(Integer, primary_key=True)
node = relationship('Node', backref='sys')
def __init__(self, node):
self.node = [Node(v) for v in node]
class Node(Base):
__tablename__ = 'node'
id = Column(Integer, primary_key=True)
value = Column(Integer)
sys_id = Column(Integer, ForeignKey('system.id'))
def __init__(self, value=None):
self.value = value
但是用虚拟类来表示每个int
似乎很麻烦。此外,该伪类无法与已经编写以期望来自int
的{{1}}列表的代码一起使用。
是否有一种方法可以告诉SQLAlchemy应该将node
的列表node
的{{1}}属性映射到单独的表?