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

Baugruppen in ER-Modell

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von TommyBe90, 5 November 2019.

  1. TommyBe90

    TommyBe90 Neuer Benutzer

    Hallo ihr lieben,

    ich bin neu hier im Forum und zudem auch neu im ganzen Thema Datenbank. Ich würde gerne eine Datenbank erstellen zum Verwalten von Geräten, sowie deren Bauteilen/-Gruppen.

    Ich habe eine m:n-Beziehung Zwischen "Baugruppe"-m-----n-"Bauteile" . Hier habe ich Abhilfe geschaffen über eine Hilfsentität "Baugruppen-Stückliste" :

    "Baugruppe"-1-----m-"Baugruppenstückliste"-m-----1-"Bauteile"

    Nun meine Frage: Es gibt Baugruppen, die wiederum aus Baugruppen bestehen. Wie muss ich das in einem ER Modell modellieren? Benötige ich alle Ebenen an Baugruppen auch im ER-Modell oder reicht eine Entität "Baugruppen" + eine weitere Entität "Bauteile"?

    Viele liebe Grüße Tommy
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Um es vielleicht mal praktisch zu zeigen:

    Code:
    test=*# select * from teile ;
        ganzes    |     teil     | menge
    --------------+--------------+-------
     Auto         | Motor        |     1
     Auto         | Rad          |     4
     Motor        | Zylinderkopf |     1
     Rad          | Schraube     |     5
     Zylinderkopf | Schraube     |    14
    (5 rows)
    test=*# WITH RECURSIVE enthaltene_teile(ganzes, teil, menge) AS (
    SELECT ganzes, teil, menge FROM teile WHERE ganzes = 'Auto'
    UNION ALL
    SELECT t.ganzes, t.teil, t.menge * et.menge
    FROM enthaltene_teile et, teile t
    WHERE t.ganzes = et.teil
    )
    SELECT teil, SUM(menge) AS gesamtmenge
    FROM enthaltene_teile
    GROUP BY teil;
         teil     | gesamtmenge
    --------------+-------------
     Zylinderkopf |           1
     Schraube     |          34
     Motor        |           1
     Rad          |           4
    (4 rows)
    
    test=*#
    
    Hilft das weiter?
    Ist aus einem Vortrag von Peter Eisentraut 2009 zu den Chemnitzer Linuxtagen entnommen. Basiert also auf einer rekursiven Abfrage. Damit kann das dann auch beliebig geschachtelt sein.
     
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