私は、それぞれが一意のID「personID」を持つかなり基本的な名前のアドレスの年齢などである人のデータベーステーブルを持っています。これにリンクして、EAVのテーブルセットを用意して、人ごとに異なる可能性がある余分なフィールドを格納します。私はすでにpersonテーブルからC#personオブジェクトまたはpersonオブジェクトの配列にレコードを保存しロードするコードを持っています。しかし、私はどのようにEAVレコードの読み込みを処理するか分からない。私は "名前"と "値"を持つプロパティの配列である "プロパティ"と呼ばれる人物オブジェクトに配列を追加することを考えていました。だから、例えば私は、単一のオブジェクトをロード保存EAVデータベース構造体からの直列化オブジェクトの読み込み
PersonA.Properties[i].Name = "Age";
PersonA.Properties[i].Value = 22;
をコーディングすることができ、私はプロパティをロードまたは1回の呼び出しで2つのデータセットを返すために、人々のテーブルと2番目の呼び出しから詳細を読み込むために1つのデータベース呼び出しを行うことができ、OKらしいです。しかし、どのように私は各人がプロパティの配列を持っている人の配列を取得するのですか?誰かが例へのリンクを持っていれば、私は感謝するだろう。私のようなコードを実行できるように、また、ボーナスポイントは、あなたが私にプロパティを実装する方法のヒントを与えることができた場合:SQL Serverと
PersonA.Properties["Age"] = "22";
EAVである必要がありますか?私は文書ベースのデータベース、例えばストレージJSONやXMLに真剣に配慮しています –
ドキュメントベースやJSONについては何も知りませんが、属性をXMLとして保存し、XMLをpersonテーブルのフィールドとして格納すると仮定しますどのように私はその情報を照会できますか?つまり年齢= 22のすべてのレコードを返しますか? – Jammy
@Jimmy - 専用のdocument-dbにはそのためのクエリ構文があります。たぶんレイヴンを見ますか? SQLサーバーでは、XMLデータ型を使用して、xpathクエリを発行するか、永続インデックス付き計算列へのxpathを昇格させるか(UDFを介して)、WHERE ColName = value –