Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB Modell für Fahrzeug, Marke, Modell? (https://www.delphipraxis.net/174124-db-modell-fuer-fahrzeug-marke-modell.html)

DeddyH 5. Apr 2013 16:34

AW: DB Modell für Fahrzeug, Marke, Modell?
 
So, das Grundgerüst (aus dem man auch eine View basteln könnte) für eine Abfrage über alle Tabellen sollte etwa so aussehen:
SQL-Code:
SELECT
  H.Bezeichnung as Hersteller,
  M.Bezeichnung as Modell,
  V.Bezeichnung as Variante,
  F.Bezeichnung as Fahrzeug
FROM
  marke H
  JOIN
    modell M ON M.marke_id = H.id
  JOIN
    variante V ON V.modell_id = M.id
  JOIN
    fahrzeug F ON f.variante_id = V.id
Das kann man dann auch noch filtern (WHERE-Bedingung), z.B. auf alle Audi beschränken:
SQL-Code:
SELECT
  H.Bezeichnung as Hersteller,
  M.Bezeichnung as Modell,
  V.Bezeichnung as Variante,
  F.Bezeichnung as Fahrzeug
FROM
  marke H
  JOIN
    modell M ON M.marke_id = H.id
  JOIN
    variante V ON V.modell_id = M.id
  JOIN
    fahrzeug F ON f.variante_id = V.id
WHERE
  H.Bezeichnung = 'Audi'
Will man weiter eingrenzen, muss nur die WHERE-Klausel erweitert werden.

AlexII 5. Apr 2013 16:39

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Danke dir, aber ich hab den DB-Entwurf noch nicht fertig. :roteyes:
Siehe Post #15 und #20

Sir Rufo 5. Apr 2013 16:58

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Und wo ist jetzt das Problem?

Das Schema ist doch fertig ...

p80286 5. Apr 2013 17:06

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Es gibt doch so visuelle Tools, da mußt Du nur richtig zeichnen und schon hast Du eine DB.

Gruß
K-H

AlexII 5. Apr 2013 17:10

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Sir Rufo (Beitrag 1210182)
Und wo ist jetzt das Problem?

Das Schema ist doch fertig ...

Mein Problem ist: Was passiert wenn ich kein Modell oder Variante eingebe, dann kracht doch die ganze Beziehung zusammen, oder? Ich gebe die Marke an und fertig, wie kommt die Beziehung zustande wenn dazwischen Modell oder Variante fehlt? :gruebel:

Sir Rufo 5. Apr 2013 17:13

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Überlegen wir mal ...

du willst zu dem Fahrzeug die genaue Modellbezeichnung (die besteht nun mal aus der Marke, dem Modell, der Variante) ...

dann geht das einfach nicht zu speichern, weil du nicht alle Informationen hast.

Das ist wie mit dem Geburtsdatum, wenn ich nur den Tag habe, kann ich das auch nicht als Datum speichern.

jfheins 5. Apr 2013 17:39

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Man könnte dafür eine "Unbekannt"-Variante und ein "Unbekannt"-Modell einführen :-)

Also quasi bei einem solchen Eintrag eine neue Variante und ein neues Modell anlegen. Das sollte dann vielleicht noch ein Flag bekommen damit man "richtige" von "falschen" Modellen unterschieden kann.

AlexII 5. Apr 2013 17:46

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Ich muss aber aus bestimmten Gründen das ganze so gestalten, dass die Marke, das Modell oder die Variante nicht eingegeben werden müssen. Ich weiß kling unrealistisch, muss aber so sein... der Kunde ist König wie man so schön sagt.

Oder kann ich einfach die Fremdschlüssel auf nil setzen und gut ist es?

Sir Rufo 5. Apr 2013 17:51

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Dann musst du dir eben alle drei Schlüssel in dem Datensatz merken.
Marke, Modell, Variante

DeddyH 5. Apr 2013 17:53

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Entweder fügst Du je Marke ein "Unbekannt"-Modell, dann je Modell eine "Unbekannt"-Variante ein und weist die dann je nach Informationsgehalt zu, oder die machst den Fremdschlüssel auf die Variante nullable und weist dem Fahrzeug dann NULL als variante_id zu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz