Google の AppEngine で実行されている django-nonrel プロジェクトに取り組んでいます。ゲーム時間、ステータス、場所など、すべてのスポーツに一般的に共通する詳細を含むゲームのモデルを作成したいと考えています。その後、GameBasketball、GameBaseball などの特定のクラスをモデル化し、これらは基本クラスから継承します。
ただし、特定の日のすべてのゲームのようなものを取得したい場合、これは問題を引き起こします。
Game.objects.filter(gametime=mydate)
これはエラーを返します:
DatabaseError: Multi-table inheritance is not supported by non-relational DBs.
AppEngine が JOIN をサポートしていないことを理解しているため、これが失敗するのは理にかなっています。しかし、非リレーショナル環境でこの問題に適切に取り組む方法がわかりません。私が試した解決策の 1 つは、ゲームを抽象基本クラスに変換することです。これにより、データを適切にモデル化できますが、抽象のオブジェクトを取得できないため、上記のユース ケースは解決されません。基本クラス。
Game モデルにすべての可能なスポーツのすべてのデータを配置する (特定のスポーツに関連しないフィールドを null のままにする) 唯一の解決策はありますか、それともこの問題を解決するよりエレガントな方法はありますか?
編集:特にAppEngineではなく、noSQLセットアップでこのタイプの問題を処理する正しい方法を理解することにもっと興味があります。ですから、答えが GAE 固有のものでなくても、遠慮なく返信してください!