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

Eine Tabelle mit mehrere Untertabellen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von kjahandel, 22 Mai 2020.

  1. kjahandel

    kjahandel Benutzer

    Hallo,
    ich habe eine category-Tabelle und mehrere Untertabellen (category_application, category_server,...) zu dieser Tabelle. Der User soll aus der Tabelle category über select-Feld ein Eintrag auswählen und aus der zugehörige Untertabelle ebenfalls. (Siehe bitte den Anhang) Die Beide Einträge sollen in einer message-Tabelle eingefügt und angezeigt werden können. Wie kann ich das realisieren? Vielen Dank für eure Antworten.
    Gruß
    Kiumars
     

    Anhänge:

  2. akretschmer

    akretschmer Datenbank-Guru

    Dein Datenmodell ist kapott. Wenn eine neue Kategorie dazukommt, sagen wir mal Datenbank, brauchst Du eine neue Tabelle.
    tl;dr
    das kann weg.
     
    Walter gefällt das.
  3. Walter

    Walter Administrator Mitarbeiter

    @kjahandel Lies Dich mal ein in die Grundlagen des Datenbankdesigns, Normalisierung.
     
    akretschmer gefällt das.
  4. kjahandel

    kjahandel Benutzer

    muss ich zu jeder zugehörige Untertabelle eine neue Tabelle erstellen ?
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Offensichtlich. Oder sollen wir das machen?
     
  6. kjahandel

    kjahandel Benutzer

  7. kjahandel

    kjahandel Benutzer

    @Walter: kennst du eine gute Online Quelle ?
     
  8. akretschmer

    akretschmer Datenbank-Guru

  9. kjahandel

    kjahandel Benutzer

    Also hier wird man nicht geholfen!
     
    akretschmer gefällt das.
  10. akretschmer

    akretschmer Datenbank-Guru

    das kann hinkommen - ab jetzt.
     
  11. kjahandel

    kjahandel Benutzer

    wie sieht der neue tabelle aus? das Problem ist dass jede Eintrag in category-tabelle eigene Tabelle hat.
    Z.B.: für category_application Tabelle
    new_table:
    id, list_id, category_id, category_application_id
    ---------------------------------------------------------

    SELECT m.*
    n.category_application_name AS category_application_name
    FROM message AS m
    LEFT JOIN new_table AS n ON n.list_id = m.list_id
    WHERE m.list_id=?
     
  12. akretschmer

    akretschmer Datenbank-Guru

    Genau. Das reicht, der Rest ist egal.
     
  13. kjahandel

    kjahandel Benutzer

    was meinst du?
     
  14. kjahandel

    kjahandel Benutzer

    SELECT
    m.list_id AS list_id,
    m.category_id AS category_id,
    ca.category_application_name AS category_application_name,
    cds.category_database_server_name AS category_database_server_name
    FROM
    message AS m
    LEFT JOIN message_category_application AS mca ON mca.list_id = m.list_id
    LEFT JOIN message_category_database_server AS mcds ON mcds.list_id = m.list_id
    LEFT JOIN category_application AS ca ON ca.id = mca.category_application_id
    LEFT JOIN category_database_server AS cds ON cds.id = mcds.category_database_server_id
    WHERE
    m.list_id = 1
     
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