2012-03-01 8 views
2

私は別のクラスBに継承された独立したクラスAを持っています。クラスAは独自のテーブルを持たず、クラスBのテーブルの列を共有します。マッパーを使用してこれらのクラスをマップする必要がある場合、どのようにマッパーを記述しますか。 例: -SQLAlchemy ORM - 2つのクラス属性を1つのテーブルに追加する

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

マッパー(Class_B、Table_B)と言うことができます。 Class_Aはマップされていないままです。 Class_Aを単独でマッピングしたい場合は、Class_Aのテーブル内に正確に何があるのか​​を明確にする必要があります。 – zzzeek

+0

ありがとうございました。 – Prasadnsr

+0

Class_AとClass_BがObject(独立)から継承し、同じテーブルに属性を持つ場合、どのようにマッピングが行われますか。現在、私はobject1が別のobject2の中にあるシナリオを持っています。このシナリオも説明してください。 – Prasadnsr

答えて

1

ORMのSAドキュメントでは、リレーショナルテーブル構造全体のオブジェクト継承を処理するさまざまなユースケースについて説明しています。ユースケースはSingle Table Inheritanceモデルのようです。厳密にあなたの例に似ていて、働きやすいようにしなければならない良い例がリストされています。