Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Master / detail haut nicht hin!

  Alt 13. Jan 2007, 11:44
Hallo cugar,

das SQL-Statement der Detail-Tabelle erhält den selektierenden master-key über einen Parameter:

SQL-Code:
SELECT r.re_nr, d.id, d.art_id, d.menge, d.preis_netto,
   p.artnr, p.bezeichnung, d.anmerkung
FROM rech_detail d, palette p, rechnung r
WHERE d.art_id = p.id AND d.re_id = r.re_nr AND d.re_id = :re_nr
Der Name des Parameters muss mit dem Namen desjenigen Feldes in der mit DataSource verknüpften Tabelle übereinstimmen, dessen Wert für die Selektion benutzt werden soll.

Noch ein Rat: Wenn RE_NR vom Benutzer eingegeben wird, dann nimm nicht RE_NR als primary key für die Tabelle Rechnung, sondern führe einen künstlichen Schlüssel ID ein, der automatisch (Generator) vergeben wird. Da dieser Schlüssel später als Fremdschlüssel Verwendung findet, ist ein surrogate key besser, da bei Änderungen der Schlüsselwert nicht auf abhängige Tabellen propagiert werden muss.

Noch etwas zur Namenskonvention: Beim ER-Entwurf stehen deine Entitäten im Singular, der Tabellenname wird üblicherweise in den Plural gesetzt. Innerhalb der Tabelle werden die Attributnamen, eventuell mit einem Rollen-Suffix, als Feldnamen übernommen. Dabei solltest du auf Redundanzen verzichten, In einer Tabelle "REchnungen" ist "Nummer" oder auch "NR" okay, RE_NR hingegen nur "zweite Wahl".

Freundliche Grüße
  Mit Zitat antworten Zitat