Ich habe eine Entität namens Feld, das wie folgt aussieht:Entity Framework Baumstruktur
Field.cs
class Field
{
public int Id { get; set; }
public string Name { get; set; }
}
So Felder wie eine einfache Liste würde wie folgt aussehen:
1 : First Name
2 : Last Name
3 : Gender
4 : Passport
5 : Driver License
6 : Issued
7 : Expired
Für jede andere Entität namens Batch möchte ich eine beliebige Struktur von Feldern haben, die wie folgt aussehen könnte:
erster Charge
First Name | Last Name | Passport | Gender
| Issued | Expired |
oder dies:
zweiter Charge
First Name | Last Name | Gender | Driver License |
| Issued | Expired |
oder anderer Baum von Feldern, in denen Benutzer verschiedene Werte für jedes Feld eingeben würden (einig Felder wären nur Überschriften, wie beispielsweise Passport)
Also meine Felder sind nur eine Liste von Elementen, die wiederverwendet werden können, mit jeder Art von Beziehung zwischen ihnen basierend auf dem Batch. Meine Idee war es, die Batch-Einheit aussehen zu haben:
Batch.cs
class Batch
{
public int Id { get; set; }
public string Fields { get; set; }
// other data...
}
Wo Felder ist ein JSON-Baum, wie dies für die "erste Charge" aussehen würde:
{ 1, 2, 4: { 6, 7 }, 3 }
Und wie dies für die zweite Charge:
{ 1, 2, 3, 5: { 6, 7 } }
Batches könnten sogar mehr tief verschachtelte Felder wie folgt aus:
| Passport |
| Issued | Expired |
| Month | Year | Month | Year |
Ist dies der beste Weg, um eine Beziehung, wie dies in der EF zu speichern? Sollte ich das JSON-Feld vermeiden und meine Daten normalisieren? Wenn ja, wie würde ich eine beliebige Baumbeziehung mit EF-Modell zuerst speichern?
Sie sagen nicht, wie Sie planen, die Daten zu speichern, zeigen Sie nur ihre Struktur. Wie würde das Datenmodell aussehen? –
Da dies Modell-zuerst ist, würde EF die Tabelle generieren, und ein Batch-Datensatz würde genau wie beschrieben: Id: 1 - Felder: "{1, 2, 4: {6, 7}, 3}" Ich würde Verwenden Sie dann den JSON aus der Zeichenfolge, um die Felder in einem Stapel anzuzeigen. Vielleicht meinen Sie, wie ich die vom Benutzer eingegebenen Daten speichern würde, und in diesem Fall plante ich, das auf einer Nosql-Datenbank zu speichern, wobei ich grundsätzlich die gleiche JSON-Struktur mit einem Schlüssel/Wert-Paar für jedes Feld verfolgte. –