Announcement

Collapse
No announcement yet.

verweis auf sich(tabelle) lösen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • verweis auf sich(tabelle) lösen

    Hallo,
    ich weiß nicht wie ich Daten in eine Tabelle eintrage, die einen Fremdschlüssel auf sich selbst hat!
    Nochmals die Tabelle VkR hat folgende Felder: vkr_id; vkr_txt; vkr_art_id; vkr_group_id
    vkr_group_id ist ein Fremdschlüssel auf die gleiche vkr-Tabelle auf vkr_id. Im Feld vkr_art_id wird unterschieden, ob es sich um eine Gruppe oder einen Eintrag handelt. Dadurch kann ich beliebige Gruppen und Untergruppen bilden und Einträge zu den Gruppen. Ist vkr_id und vkr_group_id Gleich, ist es eine Gruppe auf oberste Ebene (und Art = Gruppe).
    Ich denke und hoffe das das Konstrukt klar ist.

    Nun möchte ich eine Gruppe anlegen und komme nicht weiter. Bei einer Untergruppe habe ich keine Probleme, da die übergeordnete Gruppe bereits besteht. Möchte ich jedoch die erste, oberste Gruppe anlegen muss in vkr_group_id der Wert von vkr_id eingetragen werden. Dieser wird jedoch erst beim schreiben in die Datenbank erzeugt. Somit kann ich diesen in meiner Form noch nicht auswählen.
    Wie könnte ich dies lösen? Ich möchte und ich muss vkr_group_id immer füllen (also NULL ist nicht erlaubt).
    Ich hoffe, dass mir jemand weiterhelfen kann.

    Danke schon im voraus.

    Gruß

  • #2
    Hi,

    mit "selbst-referenzierenden" ForeignKeys habe ich noch nicht gearbeitet; ich weiß deshalb nicht, ob mein Vorschlag hilft. Ich habe für solche Fälle, in denen ein Eintrag vorausgesetzt wird, einen Datensatz mit ID=0 und der Bedeutung "allgemein" bzw. "ohne genauere Festlegung" vorgesehen.

    Vielleicht hilfts. Jürgen

    PS. Fragen zur Datenverarbeitung passen (unabhängig von der Programmiersprache) besser ins Unterforum ADO.NET.

    Comment


    • #3
      Der konkrete Ansatz hängt von der verwendeten Datenbank ab. Insbesondere davon ob die Generierung des Primary Keys auf einem AutoInc System oder auf einem Generator/Sequence System beruht.

      Eine allgemeine DB unabhängige Lösung und eine die ich persönlich auch sonst immer bevorzugen würde ist das Erzeugen des Keys nicht einer Datenbank zu überlassen. Als unabhängig von der Datenbank auf dem Client zu erzeugende Keys bitten sich da insbesondere GUIDs/UUIDs an. So hast du ein eindeutiges Schlüsselsystem bevor du dich an die DB wendest.

      Comment


      • #4
        Die Sache mit dem Schlüssel 0 funktioniert deshalb nicht, da ich genau den neu erstellten Schlüssel auswählen möchte. Trotzdem Danke.
        Mit GUID/UUID habe ich zwar noch nicht gearbeitet, werde dies jedoch probieren! Ja, ist eventuell im falschen Forum, habe ich nicht richtig überlegt, da ich in VB programmiere, habe ich es eben hier rein gestellt! Ist aber nicht unbedingt ein VB Problem - da habt ihr vollkommen recht!
        Ach ja, ich bilde das auf MS-SQL ab und benutze bis jetzt noch die AutoInc Funktion.
        Danke für die Tipps.

        Gruß

        Comment

        Working...
        X