私がどのように見えるフィールドと呼ばれるエンティティ、持っている:Field.csEntity Frameworkのツリー構造
を
class Field
{
public int Id { get; set; }
public string Name { get; set; }
}
ので、フィールドは、このような単純なリストのようになります。
1 : First Name
2 : Last Name
3 : Gender
4 : Passport
5 : Driver License
6 : Issued
7 : Expired
別のエンティティと呼ばれるバッチのそれぞれについて 、私はこのようになります。フィールドの任意の木を、持っていると思います。
最初のバッチ
First Name | Last Name | Passport | Gender
| Issued | Expired |
またはこの:
第二のバッチ
First Name | Last Name | Gender | Driver License |
| Issued | Expired |
またはユーザーは、各フィールドに異なる値を入力したフィールドのいずれかの他の木、(いくつかのフィールドは見出しだけです(例:Passportなど)
私のフィールドは、再利用できる要素の一覧に過ぎず、バッチに基づいてそれらの間に何らかの関係があります。
Batch.csフィールドは「最初のバッチ」のために、このようになりますJSONツリーで
class Batch
{
public int Id { get; set; }
public string Fields { get; set; }
// other data...
}
:
{ 1, 2, 4: { 6, 7 }, 3 }
私の考えのようなバッチエンティティの外観を持っていることでした そして、第二のバッチのために、このような:
{ 1, 2, 3, 5: { 6, 7 } }
バッチも、このような、より深くネストされたフィールドを持つことができる:
| Passport |
| Issued | Expired |
| Month | Year | Month | Year |
をこれはEFでこのような関係を格納するための最良の方法ですか? JSONフィールドを避け、データを正規化する必要がありますか?もしそうなら、EFモデルを使って任意のツリー関係を保存するにはどうすればいいですか?
どのようにデータを保存するのか分かりませんが、その構造だけを表示します。データモデルはどのように見えますか? –
これはモデルファーストなので、EFはテーブルを生成し、バッチレコードは次のように正確に記述されます。 ID:1 - フィールド: "{1,2,4:{6,7}、3}" 文字列のjsonを使用して、バッチのフィールドを表示します。 多分、ユーザーが入力したデータをどのように格納するのかということです。その場合は、基本的に同じフィールドにキーと値のペアを持つ同じjson構造に従って、nosqlデータベースに格納する予定です。 –