Announcement

Collapse
No announcement yet.

Newbie: Insert in Haupt/ Detailtabelle

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

  • Newbie: Insert in Haupt/ Detailtabelle

    Hallo,

    die Frage ist vielleicht unkompliziert, habe leider jedoch nirgends eine zufriedenstellende Antwort gefunden.

    Ich möchte in einer Haupttabelle Rechnungsköpfe speichern, in einer Detailtabelle stehen die einzelnen Positionen der Rechnung. Die Beziehung zwischen Kopf und Positionen möchte ich über die Datensatz-ID des Rechnungskopfes herstellen. Und genau da habe ich ein Verständnissproblem.
    Wie kann ich gleichzeitig in der Haupttabelle und in der Detailtabelle Datensätze einfügen und kenne dabei die Datensatz-ID des Kopfes für den Eintrag der Positionen?

    Ich könnte dies lösen, indem ich vorm einfügen der Positionen mit max(id) den höchsten Wert der Kopftabelle ermittle. Leider sollen mehrere Benutzer gleichzeitig Werte einfügen können und daher kann ich nicht sicherstellen das die höchste ID immer die richtige ist.

    Habt Ihr einen Tipp für mich?

    Für alle Hinweise bin ich dankbar!

  • #2
    Was fürne Datenbank verwendet Du denn Normalerweise bestimmt man einen neuen eindeutigen Wert, max ist dafür ungeignet wie du selbst erkannt hast, z.B. über Generatoren/Sequences und verwendet dieses dann. Dieser kann aber wenn ein Benutzer was rückgängig macht durchaus Lücken aufweisen, was man mit max meist vermeidet, aber bei max hat man halt ein u.U. ein Problem

    Comment


    • #3
      Ich nutze Paradox als Datenbank. Ich habe mir nur die Frage gestellt weil ich mit bei SELECT mit Join die Daten ja zusammenziehen kann, warum also nicht auf ungefähr gleiche Weise inserten?
      Das Problem sehe ich im eindeutigen Schlüssel. Was ist da eindeutig? Lieferant? Nein, denn der kann mehrmals liefern=nicht eindeutig. Lieferant und dessen Rechnungsnummer? Ja, aber was ist, wenn aus irgendwelchen Gründen er diese Nr. nochmal bringt? Lieferant+Rechnungsnummer+Datum? Da stehe ich momentan echt ein bissi vor ner Wand. Hatte eigentlich gedacht das die Verwendung von ID's da richtig wäre

      Comment


      • #4
        geht es dir um das was logisch eindeutig ist, dann am besten für die Buchhaltung Rechnungsnummer alleine,

        für den internen Aufbau arbeite ich auf allen Tabellen mit bedeutungslosen, einfeldrigen, Integer Keys, da kann man dann aussenrum machen was mann will. Ist allerdings auch permament am "umschlüsseln". Der Benutzer sieht diese "ID's" nie

        Comment


        • #5
          Rechnungsnummer alleine wird schlecht gehen. Was ist wenn Lieferant A zufällig die gleiche Rechnungsnummer hat wie Lieferant B? CRASH!
          Was ich gestern gesagt hab scheint mir da besser ->Lieferantid+Rgnummer+rgdatum - das muss einfach eindeutig sein.

          Das mit den Integer-Keys hab ich mir auch überlegt, aber dann muss ich ja in einer "Key-Tabelle" den aktuellen Key speichern, oder

          Comment


          • #6
            Nein!

            In Deine Kopftabelle bekommt

            RechnungsKey, Lieferantenid, RngNummer, RngDatum,

            In Deine Detailtabelle

            PositionsKey, RechnungsKey, PositionDaten ...

            Über RechnungsKey sind die Tabellen verknüpft.

            Da es sich anscheinend um Ausgangsrechnungen handelt, würde ich sicherstellen das (deine) RngNummer eindeutig ist, diese aber nicht als Schlüssel verwenden.

            Bei Eingangsrechnung brauchts hast Du maximal Eindeutigkeit bei Kunde und Rechnungsnummer

            Comment


            • #7
              Ja, ich denke ich habs begriffen.
              Danke Dir erstmal - ich leg gleich mal los.

              Gruß
              Steffe

              Comment

              Working...
              X