LMDB はキー値ストアです。ここに格納できるキーと値の種類は何ですか? 例は、int
または..のいずれかを示しています。また、学生に関連するすべてのデータをに保存char arrays
するように、関連データをに保存できるかどうかも知りたいです。lmdb
table
RDBMS
2 に答える
あなたは C プログラマーではないように思えますが、C 言語のコンテキストでは、LMDB のキーと値のデータはどちらも (void *) です。つまり、何かへの汎用ポインターです。つまり、プログラミング言語で表現できるすべてのデータ型を使用できます。他の言語では、どのようなバインディングが提供されていても、オプションがより制限される場合があります。
LMDB は何を保存するかは気にしません。見るのはブロブだけです。明らかに、RDBMS ではありません。構造化データを保存する場合は、その構造を自分で管理する必要があります。複雑なデータ構造を取得して blob にシリアル化し、単一のキーの下に格納できます。これは、OpenLDAP の slapd で使用されているアプローチです。または、データの個々の列を個別の名前付き DB として LMDB に設定し、個々の値をそれぞれの DB に格納することもできます。(たとえば、OpenLDAP と SQLite/SQLightning のインデックスはこのように処理されます。) そうです、LMDB はリレーション自体を管理する機能を提供していませんが、必要に応じて RDBMS のバッキング ストアとして使用できます。(繰り返しますが、例として SQLightning を参照してください。MySQL/MariaDB または Postgres のバックエンドも同様に実行可能です。