Joy: MySql mehrere ID´s in einer Zeile!

MySql mehrere ID´s in einer Zeile!

Hallo leute – ich möchte in meiner MySql Datenbank im table IDleistungsberreich mehrere ID´s eingeben  - muss ich die dann mit einen  “;“ trennen oder geht das überhaupt nicht?

cu Joy

  1. Du kannst in deine MySQL-Tabelle reinschreiben was du willst.
    Frage ist nur: wie bekommst du den Inhalt sinnvoll wieder heraus?

    Mehr als eine ID für einen Datensatz macht überhaupt kein Sinn.
    Wenn, dannn nur wenn die Zahlen andere IDs repräsentieren.
    UND dann kommen die in eine neue Spalte. <--Punkt

    1. Hallo mark

      Du kannst in deine MySQL-Tabelle reinschreiben was du willst.
      Frage ist nur: wie bekommst du den Inhalt sinnvoll wieder heraus?

      Einverstanden :-)

      Mehr als eine ID für einen Datensatz macht überhaupt kein Sinn.

      Nicht ganz einverstanden, es gibt auch Fremdschlüssel, es gibt zusammengesetzte Schlüssel, auch Primärschlüssel :-)

      Wenn, dannn nur wenn die Zahlen andere IDs repräsentieren.
      UND dann kommen die in eine neue Spalte. <--Punkt

      Nicht einverstanden. Es gibt auch die Möglichkeit, dass diese in eine Zeile einer neuen Tabelle gehören (n:m-Beziehung).

      Was hier sinnvoll ist, geht aus den spärlichen Informationen des OP nicht hervor.

      Freundliche Grüße

      Vinzenz

  2. Hallo Joy

    Hallo leute – ich möchte in meiner MySql Datenbank im table IDleistungsberreich mehrere ID´s eingeben

    Warum? Was möchtest Du mit mehreren IDs bezwecken?
    Eine Zuordnung zu verschiedenen Bereichen? Wenn ja, dann gehört das in eine eigene Tabelle als jeweils einzelne Zeilen.

    • muss ich die dann mit einen  “;“ trennen oder geht das überhaupt nicht?

    Wenn Du das tun willst, dann kannst Du das mit jedem beliebigen Trennzeichen, das Dir gefällt. _Deine Anwendung_ muss diese auflösen, dem Datenbankmanagementsystem (DBMS) ist das egal; das ist auch nicht die Aufgabe des DBMS.

    Dein Wunsch ist allerdings ein Zeichen dafür, dass Deine Datenbankstruktur verbesserungswürdig ist. Ein grundlegendes Prinzip relationaler Datenbanken fordert, dass Daten atomar vorliegen, also jeweils in einer Spalte einer Zeile genau ein Datum (1. Normalform). Dieses Grundprinzip möchtest Du verletzen. Ich rate Dir davon ab.

    Es ist auch keine gute Idee, für jeden "Bereich", dem ein Datensatz zuzuordnen ist, eine Spalte zu definieren. Kommt ein Bereich hinzu, so benötigst Du eine weitere Spalte. Das ist nicht gut. Erstelle eine Zuordnungstabelle. Für jede weitere Zuordnung gibt es eine weitere Zeile. Das ist einfach.

    Aber bitte gib' einfach an, was Du erreichen willst. Dann können wir Dir gezielter helfen.

    Freundliche Grüße

    Vinzenz

    1. Hallo Joy

      Hallo leute – ich möchte in meiner MySql Datenbank im table IDleistungsberreich mehrere ID´s eingeben

      Warum? Was möchtest Du mit mehreren IDs bezwecken?
      Eine Zuordnung zu verschiedenen Bereichen? Wenn ja, dann gehört das in eine eigene Tabelle als jeweils einzelne Zeilen.

      • muss ich die dann mit einen  “;“ trennen oder geht das überhaupt nicht?

      Wenn Du das tun willst, dann kannst Du das mit jedem beliebigen Trennzeichen, das Dir gefällt. _Deine Anwendung_ muss diese auflösen, dem Datenbankmanagementsystem (DBMS) ist das egal; das ist auch nicht die Aufgabe des DBMS.

      Dein Wunsch ist allerdings ein Zeichen dafür, dass Deine Datenbankstruktur verbesserungswürdig ist. Ein grundlegendes Prinzip relationaler Datenbanken fordert, dass Daten atomar vorliegen, also jeweils in einer Spalte einer Zeile genau ein Datum (1. Normalform). Dieses Grundprinzip möchtest Du verletzen. Ich rate Dir davon ab.

      Es ist auch keine gute Idee, für jeden "Bereich", dem ein Datensatz zuzuordnen ist, eine Spalte zu definieren. Kommt ein Bereich hinzu, so benötigst Du eine weitere Spalte. Das ist nicht gut. Erstelle eine Zuordnungstabelle. Für jede weitere Zuordnung gibt es eine weitere Zeile. Das ist einfach.

      Aber bitte gib' einfach an, was Du erreichen willst. Dann können wir Dir gezielter helfen.

      Freundliche Grüße

      Vinzenz

      sorry wenn ich mich nicht klar ausgedrückt habe.#
      Also das Produkt CREATIN ist für den leistungs- berreich  AUSDAUER(ID1) und KRAFT(ID2)- Also dachte ich mir ob man im IDleistungsberreich ID1 + ID2 reinschreiben kann damit er es auch wieder auslesen kann in der Rubrik AUSDAUER & KRAFT - da diese eine eigene Seite bekommen wo das extra ausgelesen wird. Da ich mir das ersparen möchte für jedes Produkt die auf mehreren Leistungsbereichen zutreffen einen extra table zu erzeugen.

      Puhh hoffe das ist jetzt nicht zu verwirrend.

      cu Joy

      1. Hi,

        Also das Produkt CREATIN ist für den leistungs- berreich
        AUSDAUER(ID1) und KRAFT(ID2)- Also dachte ich mir ob man im
        IDleistungsberreich ID1 + ID2 reinschreiben kann damit er es auch
        wieder auslesen kann in der Rubrik AUSDAUER & KRAFT

        also ich würd machen

        tabelle1:
        ----------------------------
        | Produkt_id | Produktname |
        ----------------------------

        tabelle2:
        ----------------------------
        | Bereich_id | Bereichname |
        ----------------------------

        tabelle3:
        ----------------------------
        | Produkt_id | Bereich_ids |
        ----------------------------

        in Bereich_ids dann die IDs der bereiche welche zutreffen mit , . oder
        sonstigem trennzeichen. musst dann nurnoch richtig auslesen.

        MfG

        1. Hi,

          Also das Produkt CREATIN ist für den leistungs- berreich
          AUSDAUER(ID1) und KRAFT(ID2)- Also dachte ich mir ob man im
          IDleistungsberreich ID1 + ID2 reinschreiben kann damit er es auch
          wieder auslesen kann in der Rubrik AUSDAUER & KRAFT

          also ich würd machen

          tabelle1:

          | Produkt_id | Produktname |

          tabelle2:

          | Bereich_id | Bereichname |

          tabelle3:

          | Produkt_id | Bereich_ids |

          in Bereich_ids dann die IDs der bereiche welche zutreffen mit , . oder
          sonstigem trennzeichen. musst dann nurnoch richtig auslesen.

          MfG

          ok dann wäre ja tabelle3 die Tabelle IDleistungsberreich und alles beim alten - richtig auslesen meinst du für jeden leistungsberreich eine neue Seite? wenn ja dann ist das genauso wie ich es programmieren möchte.

          Danke cu Joy

          1. Hallo Joy

            also ich würd machen

            tabelle1:

            | Produkt_id | Produktname |

            ok

            tabelle2:

            | Bereich_id | Bereichname |

            ok

            tabelle3:

            | Produkt_id | Bereich_ids |

            Fast ok

            tabelle3:
            ----------------------------
            | Produkt_id | Bereich_id |
            ----------------------------

            Für jede Zuordnung _eine_ Zeile!

            1                1
                 1                2

            in Bereich_ids dann die IDs der bereiche welche zutreffen mit , . oder
            sonstigem trennzeichen. musst dann nurnoch richtig auslesen.

            Nein, nicht so. Siehe meine beiden bisherigen Postings.
            Das ist ein ganz schlimmer Fehler im Datenbankdesign.

            ok dann wäre ja tabelle3 die Tabelle IDleistungsberreich und alles beim alten - richtig auslesen meinst du für jeden leistungsberreich eine neue Seite? wenn ja dann ist das genauso wie ich es programmieren möchte.

            Bitte nicht so. Nicht mehrere IDs in eine Zelle.

            • Ein Produkt kann mehreren Bereichen zugeordnet sein.
            • Für jeden Bereich kann es mehrere Produkte geben.

            Das ist die n:m-Beziehung. Tabelle 3 nehmen und für jede Zuordnung einen Datensatz (= Zeile).

            Freundliche Grüße

            Vinzenz

            1. Hallo Joy

              also ich würd machen

              tabelle1:

              | Produkt_id | Produktname |

              ok

              tabelle2:

              | Bereich_id | Bereichname |

              ok

              tabelle3:

              | Produkt_id | Bereich_ids |

              Fast ok

              tabelle3:

              | Produkt_id | Bereich_id |

              Für jede Zuordnung _eine_ Zeile!

              1                1
                   1                2

              in Bereich_ids dann die IDs der bereiche welche zutreffen mit , . oder
              sonstigem trennzeichen. musst dann nurnoch richtig auslesen.

              Nein, nicht so. Siehe meine beiden bisherigen Postings.
              Das ist ein ganz schlimmer Fehler im Datenbankdesign.

              ok dann wäre ja tabelle3 die Tabelle IDleistungsberreich und alles beim alten - richtig auslesen meinst du für jeden leistungsberreich eine neue Seite? wenn ja dann ist das genauso wie ich es programmieren möchte.

              Bitte nicht so. Nicht mehrere IDs in eine Zelle.

              • Ein Produkt kann mehreren Bereichen zugeordnet sein.
              • Für jeden Bereich kann es mehrere Produkte geben.

              Das ist die n:m-Beziehung. Tabelle 3 nehmen und für jede Zuordnung einen Datensatz (= Zeile).

              Freundliche Grüße

              Vinzenz

              Hallo Vinzenz,

              danke für die Hilfe - wollte eben jede zuordnung vermeiden  - ok geht so eben nicht  -

              DANKE an alle

              cu Joy