Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#9

AW: Nullable VS Nullable

  Alt 10. Jan 2019, 13:38
Ich möchte nochmals darauf hinweisen, dass gerade hier bei der Einhaltung von SoC dieses Problem nicht wirklich existiert, bzw. an nur einer überschaubaren Stelle auftritt.

Die Entity-Klassen für Aurelius (oder jedes andere ORM-Framework) spiegeln 1:1 die SQL-Tabellen wieder und nur in den eher zufällig seltenen Fällen auch Anwendungs-Klassen.

Beispiel:
Delphi-Quellcode:
// Domain-Model
TAddress = record
  Street: string;
  PostalCode: string;
  City: string;
end;

TContact = record
  Id : Integer;
  Firstname: string;
  Lastname: string;
  Addresses: TArray<TAddress>;
end;
und nun die ORM-Klassen, damit das auch in eine Datenbank rein kann
Delphi-Quellcode:
// Entity-Model
TContact = class
  property Id: Integer;
  // Concurrency-Conflicts-Detection
  property Version: Integer;
  property Firstname: string;
  property Lastname: string;
end;

TContactAddress = class
  property ContactId: Integer;
  property Position: Integer;
  property Street: string;
  property PostalCode: string;
  property City: string;
end;
Obwohl sich in beiden Informationen zu einem Kontakt befinden gibt es dennoch unterschiedliche Ansprüche an das Layout. Um das Addresses-Array auch exakt wiederherstellen zu können benötigt man zusätzlich auch die Position. Oder zum Erkennen von Concurrency-Conflicts die Version. Damit will man sich aber auf der Anwendungsebene nicht herumschlagen, zumal dieses (Position) auch wiederum der relationalen Datenbank geschuldet ist. Bei einer NoSQL-Datenbank könnte man darauf (Position) wiederum verzichten, denn dort wird auch die Reihenfolge der Adressen gespeichert.

Geändert von Schokohase (10. Jan 2019 um 13:42 Uhr)
  Mit Zitat antworten Zitat