sql python 数据库对象映射_python – 如何使用SQLAlchemy映射一个类与多个表?

让我们说,我有一个数据库结构,有三个表,如下所示:

items

- item_id

- item_handle

attributes

- attribute_id

- attribute_name

item_attributes

- item_attribute_id

- item_id

- attribute_id

- attribute_value

我希望能够在sqlAlchemy中做到这一点:

item = Item('item1')

item.foo = 'bar'

session.add(item)

session.commit()

item1 = session.query(Item).filter_by(handle='item1').one()

print item1.foo # => 'bar'

j = join(items,item_attributes,items.c.item_id == item_attributes.c.item_id). \

join(attributes,item_attributes.c.attribute_id == attributes.c.attribute_id)

mapper(Item,j,properties={

'item_id': [items.c.item_id,item_attributes.c.item_id],'attribute_id': [item_attributes.c.attribute_id,attributes.c.attribute_id],})

它只将item_id和attribute_id添加到Item,并且不可能向Item对象添加属性.

我正试图用sqlAlchemy实现可能吗?有没有更好的方式来构建数据库以获得与“动态列”相同的行为?

你可能感兴趣的:(sql,python,数据库对象映射)