2012-03-01 43 views
2

我有独立的类A,它在另一个类B中继承。 A类没有自己的表,它共享B类表中的列。如果我必须使用映射器映射这些类,我将如何编写映射器。 例子: -SQLAlchemy ORM - 将两个类属性添加到单个表中

class Class_A(object): 

    def __init__(self,name, value): 
     self.name = name 
     self.value = value 

class Class_B(Class_A): 

    def __init__(self, id, amt): 
     self.id = id 
     self.amt = amt 

Table_B = Table('tableB', metadata, 

    Column('id', Integer) 
    Column('name', String(20)) 
    Column('value', String(20)) 
    Column('amt', Integer) 
) 

请帮助我。

+2

你可以说mapper(Class_B,Table_B)。 Class_A本身将保持未映射。如果你想自己映射Class_A,你必须澄清一下Class_A的表格到底是什么。 – zzzeek 2012-03-01 21:18:17

+0

谢谢你的回应。 – Prasadnsr 2012-03-07 10:29:24

+0

如果Class_A和Class_B从Object(独立)继承并且具有同一个表中的属性,则映射将如何完成。目前我有一个场景,其中object1在另一个object2内。请解释这种情况。 – Prasadnsr 2012-03-07 10:38:06

回答

1

ORM的SA文档讨论了处理跨关系表结构的对象继承的许多不同用例。看起来您的使用案例是Single Table Inheritance模型。列出的很好的示例与您的示例密切相关,应该很容易上手。