Thema: Delphi Datenmodell

Einzelnen Beitrag anzeigen

HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#26

Re: Datenmodell

  Alt 28. Apr 2010, 10:01
@Cogito Ich versuch Mal etwas grundsätzlicher zu antworten, heißt ich kann Dir keine fertige Komponente nennen.

1. Du hast eine fertige Datenbankstruktur

2. Das bedeutet, dass bereits alle sinnigen Relationen bekannt sein sollten

3. Du solltest deinen Anwender nicht zumuten, diese Relation zu definieren, sondern statt dessen ihn alle Relationen anbieten die zur Verfügung stehen.

Ich habe so etwas Mal mit einer ComboBox und einem Baum gelöst. In der Combobox sind alle Entities die Basis einer Abfrage seien können (Kunde, Bestellung, Rechnung, Lieferung, Bestellposition, Artikel etc.). Lautet die Abfrage "Gib mir alle Kunden die im August den Artikel 0815 bestellt haben." wählt der Anwender Kunde aus der ComboBox und sieht folgenden Baum:

Code:
Kunde
    Name
    KundenNr
    Adresse
   +Bestellungen
   +Rechnungen
   +Lieferung
nach ein paar Klicks hat der Anwender folgenden Baum

Code:
Kunde
    Name
    KundenNr
    Adresse
   -Bestellungen
        BestellNr
        BestellDatum
       -Positionen
            PosNr
            Menge
           -Artikel
                ArtikelNr
                Name
               +Positionen
   +Rechnungen
   +Lieferung
Jetzt muss der Anwender nur noch auswählen welche Felder er sehen möchte und angeben welche Bedingungen diese Felder zu erfüllen haben.

Code:
Kunde
X   Name
X   KundenNr
X   Adresse
    -Bestellungen
         BestellNr
         BestellDatum (vom 01.08.2009 bis 31.08.2009)
        -Positionen
             PosNr
             Menge
            -Artikel
                 ArtikelNr (gleich 0815)
                 Name
                +Positionen
    +Rechnungen
    +Lieferung
So muss der Anwender keine Relationen definieren sondern wählt aus denen die zur Verfügung stehen. Und er läuft auch nicht Gefahr die KundenNr in Relation zur ArtikelNr zu setzen.

Dies ist nur die Grundidee. Bevor man das dem Endanwender vorsetzt, gilt es noch eine Reihe interessanter Probleme zu lösen.
  Mit Zitat antworten Zitat