あなたが解決しようとしている問題の性質について正確にはわかりませんが、不思議なことにGoogle App Engine の BigTable Expandoに似ているように聞こえます。
Expandos を使用すると、実行時にデータベースに基づくオブジェクト インスタンスに追加のフィールドを指定して保存できます。ドキュメントから引用するには:
import datetime
from google.appengine.ext import db
class Song(db.Expando):
title = db.StringProperty()
crazy = Song(title='Crazy like a diamond',
author='Lucy Sky',
publish_date='yesterday',
rating=5.0)
crazy.last_minute_note=db.Text('Get a train to the station.')
Google App Engine は現在、Python と Django フレームワークの両方をサポートしています。これがモデルを表現する最良の方法であるかどうかを調べる価値があるかもしれません。
従来のリレーショナル データベース モデルには、この種の列追加の柔軟性がありません。データ型が十分に単純である場合、@Ned Batchelderが提案するように、従来の RDBMS 哲学から抜け出し、シリアライゼーションを介して単一の列に値をハックすることができます。ただし、 RDBMS を使用する必要がある場合は、おそらく Django モデルの継承が適しています。特に、派生の各レベルに対して1 対 1 の外部キー関係が作成されます。