1

プレーンな相互リンクされたオブジェクトのセットを計算するプログラムがあります (オブジェクトは、基本的に String、int、または別のオブジェクトへのリンクのいずれかであるプロパティで構成されます)。(別のプログラムから) 簡単に SQL クエリを実行できるように、オブジェクトをリレーショナル データベースに格納したいと考えています。

さらに、オブジェクト (クラス) は変化および進化する傾向があります。クラスが進化するたびに「永続層」を変更する必要のない一般的なソリューションが必要です。

それを行う方法はありますか?

4

4 に答える 4

1

私はそれを自分で使用したことはありませんが、これは SQLAlchemy のユースケースのように思えます:

http://www.sqlalchemy.org/

基本的に、オブジェクト プロパティをテーブル列または他のクラスとの関係として定義し、基本的にすべての直接的な db 相互作用を処理します。同じことを行うライブラリが他にもあるかもしれませんが、SQLAlchemy は私がかつて偶然見つけたもので、かなり一般的に使用されているようです。

于 2013-10-02T17:18:32.520 に答える
1

オブジェクトを JSON に格納するのはどうですか? オブジェクトをデータベースに格納する前にシリアル化する関数を作成できます。オブジェクトに特定の識別子がある場合は、簡単に取得できるように、それをインデックスとして使用することをお勧めします。

于 2013-10-02T17:08:32.987 に答える
0

sebastian のアイデアは、オブジェクト マッピングを自動的に行うため、おそらく最も使いやすいものですが、既に SQL に精通しており、SQL を好み、Python 2.5 以降を使用している場合は、sqlite3 ライブラリを検討することをお勧めします。これは非常に使いやすいライブラリであり、セットアップに何の作業も必要ないと確信しています。ただし、sqlite3 ライブラリをインストールする必要がある場合があります。http://docs.python.org/2/library/sqlite3.html

于 2013-10-02T17:32:03.343 に答える
0

SQLAlchemy は素晴らしいです。別の主要なオプションは、django の ORM を使用することです。

https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models

基本的に、django モデル クラスを拡張する python でクラスを作成すると、標準のリレーショナル データベース テーブルにマップされます。

于 2013-10-02T17:43:59.477 に答える