2012-03-01 72 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模型。列出的很好的示例與您的示例密切相關,應該很容易上手。