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

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