Fremdschluessel

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fremdschluessel

    Hallo,

    ich bin mir beim Thema MySQL/Fremdschluessel gerade etwas unsicher... aber ihr koennt mir mit Sicherheit helfen.

    Kann ein Fremdschluessel den Wert NULL haben? Also dass eine Spalte mit Fremdschluessel entweder NULL ist oder die angegebene Relation existieren muss. Ich denke ja, oder?

    Danke!

  • #2
    ja. warum denn nich?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      alles ist möglich, ob aber sinnvoll ist, musst du selbst wissen.

      Kommentar


      • #4
        Ich würde eher zu nein tendieren. Wenn du schreibst

        Also dass eine Spalte mit Fremdschluessel entweder NULL ist oder die angegebene Relation existieren muss.
        würde das bedeuten, dass das stets für alle Datensätze gilt, auch wenn bereits ein Datensatz den Wert NULL hat in der PK Spalte. Aber es darf nur einmal der "Wert" NULL vorkommen in dieser PK Spalte, somit denke ich, dass NULL als "Wert" zwar vorkommen darf für ein FK Feld, allerdings eben nur ein einziges Mal, was du glaube ich nicht in deinem Sinne ist, oder?
        Rettet die Wälder - esst mehr Biber

        Kommentar


        • #5
          Original geschrieben von Abraxax
          ja. warum denn nich?
          desshalb frage ich ja weil ich mir nicht sicher bin *g*
          aber wenn es geht ist ja alles bestens!


          Original geschrieben von asp2php
          alles ist möglich, ob aber sinnvoll ist, musst du selbst wissen.
          das hoffe ich


          Original geschrieben von deetee
          Ich würde eher zu nein tendieren. Wenn du schreibst [...] würde das bedeuten, dass das stets für alle Datensätze gilt, auch wenn bereits ein Datensatz den Wert NULL hat in der PK Spalte. Aber es darf nur einmal der "Wert" NULL vorkommen in dieser PK Spalte, somit denke ich, dass NULL als "Wert" zwar vorkommen darf für ein FK Feld, allerdings eben nur ein einziges Mal, was du glaube ich nicht in deinem Sinne ist, oder?
          Ich habe leider nicht ganz verstanden was du meinst... vielleicht irritiert das Wort Spalte in einem Satz! Ich meine einfach nur ob ein Feld das als Fremdschluessel definiert ist den "Wert" NULL haben darf. Unabhaengig was die anderen Datensaetzte haben. Manche Datensaetze haben dann in diesem Feld einen richtigen Wert und somit auch eine Relation zu einer anderen Tabelle, und manche eben NULL...

          Kommentar


          • #6
            Ok, meine Erklärung war Schrott.

            Allerdings ist es nicht zulässig den "Wert" NULL für ein PK Feld zu vergeben. Der Grund dafür ist, dass ein PK Feld eindeutig sein muss, was mit NULL eben nicht der Fall wäre. NULL ist genaugenommen auch kein Wert. Es sagt nur aus, dass der Wert eines Feldes nicht genauer definiert ist. Und eben das widerspricht dem Konzept von Primärschlüsseln.

            DB Systeme die es genau nehmen, werden auch keine PK Spalte mit der Definition NULL zulassen. Oder sie fixen diesen Einstellungsfehler automatisch bei der Erstellung.
            Rettet die Wälder - esst mehr Biber

            Kommentar


            • #7
              wenn eine spalte als PK definiert wird/wurde, darf meines wissen auch genau 1x NULL vorkommen. aber das ist sowas von sinnfrei .... das lassen wir das mal.

              wenn man aber eine tabelle hat, bei der in verschiedenen datensätzen der FK als NULL definiert ist, ist das legitim.

              angenommen, du hast eine spalte für eine eigenschaft oder was auch immer, und es ist nicht genau definiert, was der eigentliche wert ist, dann kann NULL dort genommen werden. ist ein korrekter FK-wert definiert, wird dieser eingetragen. (ok, das beispiel ist müll, sollte aber zur verdeutlichung reichen)
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Ein FK Schlüssel muss immer einen eindeutigen Wert haben, also ungleich NULL. Dass dieser Wert in einer Tabelle dann öfter vorkommen darf ist klar, es ist ja nur der FK und kein PK in dieser Tabelle.

                Alles andere würde dem Konzept von relationalen DBs widersprechen. Dass es bei manchen DB Systemen möglich ist, heisst nicht, dass es richtig ist.

                Und ein PK darf nicht NULL sein. Das kann man überall nachlesen, wo es um relationale DB Systeme geht.
                Rettet die Wälder - esst mehr Biber

                Kommentar

                Lädt...
                X