Einzelnen Beitrag anzeigen

fajac

Registriert seit: 1. Jul 2009
60 Beiträge
 
#16

Re: Datenstruktur clientseitig abbilden?

  Alt 24. Sep 2009, 11:25
Meiner Ansicht nach sollte man, wenn man seine Business-Objekte als Repräsentationen von Tabellen-Datensätzen erstellt, keine Abfragen mit JOIN verwenden.
Natürlich sind diese effizienter, aber das folgende Beispiel-Kostrukt dürfte auch genügend performant sein:

Delphi-Quellcode:
type
  TUser = class
    FUserId : Integer;
    FUserName : string;
    procedure Assign (AData : TDataset);
  end;

  TEntry = class
    FEntryId : Integer;
    FText : string;
    FUser : TUser;
    procedure Assign (AData : TDataset);
  end;

implementation
  
{ AData wurde mit "select * from Entries where ..." ermittelt }
procedure TEntry.Assign (AData : TDataset);
var
  data : TDataset;
begin
  { Eigenschaften setzen }
  FEntryId := AData.FieldByName('').AsInteger;
  { ... }
  FUser := TUser.Create;
  { data mit "select * from Users where id=:userId" füllen }
  FUser.Assign (data);
  { ... }
end;
Dann hast du zwar zwei Abfragen statt einer, aber alle Objekte enthalten nur Daten einer Tabelle.
  Mit Zitat antworten Zitat