Uwe: phpMyAdmin - Fremdschlüssel

Hallo!

Ich habe eine Tabelle mit einer Spalte für Fremdschlüssel. Wenn ich unter phpMyAdmin einen Datensatz in die Tabelle schreiben will bekomme ich für die Spalte ein Auswahlfeld mit den Schlüsseln der Fremdspalte.
Ich bin jetzt aber ein wenig verwirrt weil die Schlüssel doppelt auftauchen und zwar in der Form

-3
-2
-1

1-
2-
3-

Wieso ist das so und was ist der Unterschied?

Grüße, Uwe

  1. Hi!

    Ich habe eine Tabelle mit einer Spalte für Fremdschlüssel. Wenn ich unter phpMyAdmin einen Datensatz in die Tabelle schreiben will bekomme ich für die Spalte ein Auswahlfeld mit den Schlüsseln der Fremdspalte.
    Ich bin jetzt aber ein wenig verwirrt weil die Schlüssel doppelt auftauchen und zwar in der Form

    Die sind einmal nach dem Schlüsselfeld und einmal nach dem Defaultwert der Tabelle sortiert. Letzterer ist eine Spezialität vom PMA und ist nur verwendbar, wenn die PMA-Tabellen angelegt wurden und über "Relation View" (Beziehungsübersicht auf deutsch) der einzelnen Tabelle das "field to display" (anzuzeigende Spalte) gewählt wurde. Das ganze Feature ist nur für den Komfort da.

    Lo!

    1. Die sind einmal nach dem Schlüsselfeld und einmal nach dem Defaultwert der Tabelle sortiert. Letzterer ist eine Spezialität vom PMA und ist nur verwendbar, wenn die PMA-Tabellen angelegt wurden und über "Relation View" (Beziehungsübersicht auf deutsch) der einzelnen Tabelle das "field to display" (anzuzeigende Spalte) gewählt wurde. Das ganze Feature ist nur für den Komfort da.

      Also ist es egal welchen Wert ich nehme bzw. lieg ich mit -1, -2, -3... auf jeden Fall richtig?

      1. Hi!

        Die sind einmal nach dem Schlüsselfeld und einmal nach dem Defaultwert der Tabelle sortiert.
        Also ist es egal welchen Wert ich nehme bzw. lieg ich mit -1, -2, -3... auf jeden Fall richtig?

        Die Zahlen sind die ID, und: selbe Zahl, selbe ID. Wenn du das Default-Feld der Fremd-Tabelle definierst, siehst du das auch anhand des dann zusätzlich zu sehenden Wertes (wenn die eindeutig genug sind).

        Lo!

      2. Moin!

        Die sind einmal nach dem Schlüsselfeld und einmal nach dem Defaultwert der Tabelle sortiert. Letzterer ist eine Spezialität vom PMA und ist nur verwendbar, wenn die PMA-Tabellen angelegt wurden und über "Relation View" (Beziehungsübersicht auf deutsch) der einzelnen Tabelle das "field to display" (anzuzeigende Spalte) gewählt wurde. Das ganze Feature ist nur für den Komfort da.

        Also ist es egal welchen Wert ich nehme bzw. lieg ich mit -1, -2, -3... auf jeden Fall richtig?

        So eine Fremd-ID in einer Tabelle übersetzt die ID ja für die Applikationslogik üblicherweise in einen menschlich lesbaren Wert. Sprich: Die Definition der ID ist in einer Tabelle, die 1 = Banane, 2 = Apfel etc. definiert. In der zweiten Tabelle wird dann statt des Namens die ID eingetragen.

        Wenn du die definierende Tabelle in PMA richtig konfigurierst, dann kann PMA dir beim Ausfüllen der anderen Tabelle mit Fremdschlüssel anstelle der IDs auch den zugehörigen Namen anzeigen. Und weil man entweder ID- oder namensorientiert arbeitet, ist das Select-Feld doppelt befüllt:

        1 - Banane
        2 - Apfel

        Apfel - 2
        Banane - 1

        Also IDs aufsteigend sortiert und Namen aufsteigend sortiert. Weil Browser oft Tastaturbedienung für Select-Felder anbieten, gelangst du durch Tippen einer Ziffer schnell zur zugehörigen ID, oder alternativ durch Tippen des Anfangsbuchstabens zum zugehörigen Namen, dessen ID dann eingetragen wird. Wenn die definierende Tabelle zuviele Einträge hat, wird anstelle des Select-Feldes eine komfortablere Filterfunktion mit Wahlmöglichkeit angeboten.

        Weiterhin zeigt dir PMA bei Bedarf auch die Namensauflösung in Querys an, anstelle der eigentlichen IDs.

        - Sven Rautenberg

        1. Hallo!

          So eine Fremd-ID in einer Tabelle übersetzt die ID ja für die Applikationslogik üblicherweise in einen menschlich lesbaren Wert. Sprich: Die Definition der ID ist in einer Tabelle, die 1 = Banane, 2 = Apfel etc. definiert. In der zweiten Tabelle wird dann statt des Namens die ID eingetragen.

          Wenn du die definierende Tabelle in PMA richtig konfigurierst, dann kann PMA dir beim Ausfüllen der anderen Tabelle mit Fremdschlüssel anstelle der IDs auch den zugehörigen Namen anzeigen. Und weil man entweder ID- oder namensorientiert arbeitet, ist das Select-Feld doppelt befüllt:

          1 - Banane
          2 - Apfel

          Apfel - 2
          Banane - 1

          Also IDs aufsteigend sortiert und Namen aufsteigend sortiert. Weil Browser oft Tastaturbedienung für Select-Felder anbieten, gelangst du durch Tippen einer Ziffer schnell zur zugehörigen ID, oder alternativ durch Tippen des Anfangsbuchstabens zum zugehörigen Namen, dessen ID dann eingetragen wird. Wenn die definierende Tabelle zuviele Einträge hat, wird anstelle des Select-Feldes eine komfortablere Filterfunktion mit Wahlmöglichkeit angeboten.

          Weiterhin zeigt dir PMA bei Bedarf auch die Namensauflösung in Querys an, anstelle der eigentlichen IDs.

          • Sven Rautenberg

          Herzlichen Dank für deine Ausführliche Erklärung!

          Uwe