私はPython 3を使用していますが、質問は実際には特定の言語に限定されていません。サブテーブルの実装(テーブルへの表示):クラス関係の設計
私はclass Table
に主キーを持つテーブルを実装しています。そのクラスのインスタンスには実際のデータ(非常に大きい)が含まれています。
私は、テーブルの行にフィルタを提供することによってサブテーブルを作成できるようにしたいと考えています。私はテーブルをコピーしたくないので、私は親テーブルのプライマリキーのサブセットだけをサブテーブルに残すつもりです。明らかに、サブテーブルは親テーブルへのビューに過ぎない。親テーブルが変更された場合は変更され、親テーブルが破棄された場合は無効になり、親テーブルから削除された場合は一部の行が失われます。 [EDIT:明らかにするために、親テーブルが変更された場合、私はサブテーブルにどうなるか気にしません。どんな動作でも問題ありません。]
どのように2つのクラスを接続すればよいですか?私が考えていた:
class Subtable(Table):
def __init__(self, table, filter_function):
# ...
私の仮定はSubtable
が少し行がである場合にだけチェックするために継承されたメソッドをオーバーライドする以外、Table
のインタフェースを保持していることだったこれは良い実装ですか。?
問題は、渡されたテーブルオブジェクトをコピーしたくないと仮定して、Subtable
インスタンスを初期化する方法がわかりません。それも可能ですか?
また、私はclass Table
にSubtable
インスタンスを返すインスタンスメソッドを与えることを考えていました。それはSubtable
にTable
の依存関係を作成し、避ける方が良いでしょうか?私が使用するつもりだ
このデータ構造をデータベースに移動することを検討しましたか? Pythonには、メモリ内にSQL DBを作成できる 'sqlite3'があります。 – katrielalex
はい、しかし、今はカスタム実装に固執することに決めました。 – max