auto_increment bei UPDATE?

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

  • auto_increment bei UPDATE?

    Hallo zusammen,

    folgendes Problem beschäftigt mich gerade:

    In einer Kundenverwaltung bekommen alle Kunden, die noch keinen Vertrag unterschrieben haben, eine vorläufige Kundennummer. Diese lautet z.B. V 000001.

    In der Datenbank wird diese Kundennummer aus kunde_prefix und kunde_nummer zusammengesetzt. kunde_nummer wird per auto_increment bereit gestellt und die beiden Felder zusammen ergeben den Primärschlüssel.

    Unterschreibt der Kunde einen Vertrag, soll die vorläufige Kundennummer durch eine andere ersetzt werden. Diese enthält statt kunde_prefix V die Abkürzung des Standortes, z.B. OF.

    Wenn ich jetzt ein Update auf diesen Datensatz mache und als kunde_prefix OF einfüge, setzt er mir leider nicht den nächsthöheren zu OF gehörenden auto_increment-Wert ein. Lasse ich kunde_nummer leer, setze es NULL oder füge eine 0 ein trägt er mir immer die Zahl 0 als kunde_nummer ein.

    Hat jemand eine Idee, wie ich in diesem Fall auch bei UPDATE auf den auto_increment-Wert zurückgreifen kann? Ein Max(kunde_nummer)+1 wäre für mich wegen der RaceConditions nur eine Notlösung...

    Danke im voraus und viele Grüße
    Dan

  • #2
    Was macht es für einen Sinn einem Kunden wenn er

    - Vertrag nicht unterschrieben
    - Vertrag unterschrieben

    hat.

    2 verschiedene Kundennr. zu verwenden ?
    Kundennr. ist ein eindeutiges Merkmal und das sollte auch ein eindeutiges bleiben.....

    Prefixe würde ich z.B. verwenden um Kleinkunden von Großkunden zu unterscheiden. Und die Kundennummern würde ich so gestalten das Sachbearbeiter schon beim ersten Blick wissen ob es sich um einen Kunden aus Germany, Spanien oder wo auch immer handelt.

    Alles Kunden bezogene. Inaktiv/Aktiv/gesperrt oder auch Vertrag offen würde ich in Flags realisieren.....
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Kommentar


    • #3
      Danke schonmal für deine Antwort!

      Wir erfassen einen potenziellen Kunden, im eigentlichen Sinne ist es eher ein Kontakt. Daher bekommt er im System eine Nummer, mit der wir ihn erfassen können. Bei der Erfassung ist er auch noch nicht zwangsläufig einem Beratungsstandort zugewiesen... Also erstmal keine Kundennummer.

      Kauft diese Person etwas, wird aus dem Kontakt ein Kunde. Je nachdem wo er die gekaufte Leistung in Anspruch nimmt, hat er damit auch einen Standort und bekommt eine entsprechende Kundennummer.

      Konzeptionell dürfte die Geschichte passen, aber das auto_increment-Problem bleibt...

      Danke schonmal und viele Grüße
      Dan

      Kommentar


      • #4
        Original geschrieben von langerxxx
        Je nachdem wo er die gekaufte Leistung in Anspruch nimmt, hat er damit auch einen Standort und bekommt eine entsprechende Kundennummer.
        Wenn ich also vom Kontakt zu einem Kunde werde, der im Bezirk München das erste mal gekauft hat, bekomme ich eine Kundenummer, die mich dem Bezirk München zuordnet?

        Und wenn ich dann nach Hamburg ziehe? Behalte ich die Kundennummer?
        Ich hoffe doch.
        Dann kannst du bei der Kundennummer aber doch auch den Bezirk, in dem der Kontakt erfasst wurde, speichern
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          Und wenn ich dann nach Hamburg ziehe? Behalte ich die Kundennummer?
          Ich hoffe doch.
          Ja, natürlich. :-) Das Chaos wäre ja sonst vorprogrammiert...

          Original geschrieben von mrhappiness
          Dann kannst du bei der Kundennummer aber doch auch den Bezirk, in dem der Kontakt erfasst wurde, speichern.
          Wird auch dort gespeichert. Die Kundennummer ermöglichkeit die Zuordnung auf einen Blick. Ausnahmen wie Umzüge mal ausgenommen...

          Geht prinzipiell auch nur um die Umwandlung eines Kontaktes mit V-Kundennummer in eine Kundennummer mit Zuordnung des Standortes...

          Danke und Grüße
          Dan

          Kommentar


          • #6
            Und davon ausgehen, dass der Kontakt dort zum Kunden wird, wo er Kontakt wurde, kannst du nicht?

            Entweder machst du zwei Tabellen, oder du nutzt MAX und natürlich LOCK TABLES und UNLOCK TABLES
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              Und davon ausgehen, dass der Kontakt dort zum Kunden wird, wo er Kontakt wurde, kannst du nicht?
              Wenn jeder Kontakt zum Kunden wird, wäre das prima... :-)

              Original geschrieben von mrhappiness
              Entweder machst du zwei Tabellen, oder du nutzt MAX und natürlich LOCK TABLES und UNLOCK TABLES
              Gute Idee, daran habe ich gerade gar nicht gedacht. Dann funzt das auch sicher mit dem MAX-Wert.

              VG
              Dan

              Kommentar

              Lädt...
              X