Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Datenbankmodell

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Newbie88, 10 März 2014.

  1. Newbie88

    Newbie88 Neuer Benutzer

    Hallo zusammen,

    meine Datenbank besitzt 4 Tabellen. Hauptanlagen, Teilanlagen, Geräte und Eingänge. Wir wollen nun die Funktion unseres Programmes erweitern indem wir Anmerkungen zur jeweiligen Tabelle machen kann. z.B. dass man eine Anmerkung zu Hauptanlagen macht. Oder dass man eine Anmerkung zu Geräten und Teilanlagen macht. Ich hab drei Datenmodelle gemacht. Die erste wäre mein Favorit. Beim 3 Beispiel handelt es sich um einen zusammengesetzten Schlüssel aus Eingänge id sowie den anderen Tabelle, in der man die Auswahl durch ein Enum bestätigt. Welche wäre eurer Meinung nach die beste, oder gibt es eine bessere Lösung ? Performance ist Hauptkriterium. Danke im vorraus!

    Mfg Newbie
     

    Anhänge:

  2. akretschmer

    akretschmer Datenbank-Guru

    Ja, sehe ich auch so.
     
    Newbie88 gefällt das.
  3. Newbie88

    Newbie88 Neuer Benutzer

    Gibt es eine Möglichkeit, durch einen SELECT Befehl,alle Anmerkungen(auch zu Teilanlagen und Geräten) auszulesen welche zu einer bestimmten id von Hauptanlagen gehört ?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Sicher. Das Zauberwort nennt sich "JOIN".
     
    Newbie88 gefällt das.
  5. Newbie88

    Newbie88 Neuer Benutzer

    Ja das war mir klar :) . Dann muss ich noch ein bischen rumbasteln, bis jetzt gibts nur errors bei mri :(
     
  6. Newbie88

    Newbie88 Neuer Benutzer

    So, es hat ein wenig gedauert doch nun hab ich endlich den Befehl
    Code:
    SELECT pvanm.name
    FROM pva
    JOIN pvanm
    ON pva.idpva = pvanm.idpva
    WHERE pva.idpva = 1
    UNION
    SELECT tanm.name
    FROM ta
    JOIN tanm
    ON ta.idta = tanm.idta
    WHERE ta.idpva = 1
    UNION
    SELECT gnm.name
    FROM ta
    JOIN
    (g JOIN gnm ON g.idg = gnm.idgnm)
    ON ta.idta = gnm.idgnm
    WHERE ta.idpva = 1
    Nun stellt sich mir die Frage wie ist das nun mit dem Performance. Gibt es eine bessere Methode ? Im SQL Statement oder im Datenmodell ? Ich hab noch anbei eine Grafik zu meinem Datenmodell hinzugefügt. Mfg Newbie88
     

    Anhänge:

  7. akretschmer

    akretschmer Datenbank-Guru

    Die Performance hängt u.a. von Indexen ab - siehe Explain. Wenn ich das SQL richtig deute (es paßt nicht zu den erst gezeigten Tabellen) bekommst aber 'nur' eine Liste der Texte, aus der dann nicht mehr ersichtlich ist, wozu das gehört (du selektierst ja immer nur <table>.name),
    die DB ist frei, die Records im Result beliebig zu mischen.
     
    Newbie88 gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden