Announcement

Collapse
No announcement yet.

Fehler im DBMS - doppelte Einträge - Allgemein

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

  • Fehler im DBMS - doppelte Einträge - Allgemein

    Hallo,

    wir benutzen ein auf SQL basierendes Datenbanksystem zur Lagerverwaltung mit 10 Benutzerplätzen. (Meine Anfrage ist allgemein, ich darf den Namen nicht nennen. Pardon. Ja, Lizenzen sind vorhanden.)

    Innerhalb dieses Warenwirtschaftssystems existieren z.B.

    - Artikelgruppen (z.B. Laptops) (Eine Relation)

    - Einzelartikel (z.B. Laptop Dell, Inventarnummer 123) (Eine Relation, Child von Artikelgruppen)

    Wir haben das Problem, dass, wenn mehrere Personen gleichzeitig Einzelartikel einer Artikelgruppe bearbeiten, beispielsweise deren Lagerort ändern, sich
    die Zeile der übergeordneten Artikelgruppe in der Datenbanktabelle verdoppelt.

    D.h. Es existieren dann folgende Zeilen, wobei die obere die ursprüngliche ist:

    Art-Nr (Primary Key): Beschreibung: Gruppe:
    12345 Laptops Computer
    12345 Laptops Computer

    Das schlimme ist natürlich, dass die Zeilen identisch sind, eben auch der Primärschlüssel. BEi jedem Zugriff auf diese Artikelgruppe meldet die Software dann Fehler beim Editieren, da ja auch eben zwei identische existieren.

    Ich weiß, dass ich diese doppelten durch eine distinct abfrage eliminieren kann.
    Ich weiß auch, dass dies ein programmierfehler in der Software sein kann.

    Meine Frage:

    Ist es möglich, dass geschilderte Probleme durch Installationsfehler und eben nicht Programmierfehler der Software entstanden sind? Zugriffsrechte? Einstellungen der Datenbank?
    Existiert eventuell ein typischer Fehler, der deratige Zustände verursacht?
    Kommt jemanden diese Situation bekannt vor?
    Unsere Software wird nicht mehr supportet.

    Ich würde mich über Anregungen sehr freuen.
    Grüße,
    Thomas

  • #2
    Hallo.

    Da wird wohl ein DBA ans Datenmodell ran müssen:
    -Primary Key zusätzlich auf "Unique" setzen oder "Auto Increment", um doppelte Einträge zu vermeiden
    -Tabellen für konkurrierende Schreibzugriffe sperren
    -wg. des Mehrbenutzerzugriffs könnte man die "INSERT" Anweisung durch "UPDATE" ersetzen. Von der Beschreibung her könnte das die eigentliche Ursache der doppelten Einträge sein.

    Gruss
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      -Primary Key zusätzlich auf "Unique" setzen
      Primärschlüssel sind immer unique-> Tabelle hat keinen richtigen Primärschlüssel.

      Ohne das Schema und das verwendete DBMS zu kennen kann man hier schwer etwas sagen. es scheinen auch keine Transaktionen verwendet zu werden.

      Comment


      • #4
        Originally posted by tomek4711 View Post
        ...Ist es möglich, dass geschilderte Probleme durch Installationsfehler und eben nicht Programmierfehler der Software entstanden sind? Zugriffsrechte? Einstellungen der Datenbank?
        Existiert eventuell ein typischer Fehler, der deratige Zustände verursacht?
        Kommt jemanden diese Situation bekannt vor?
        Unsere Software wird nicht mehr supportet.
        Hallo Thomas,

        wenn die Software so ausgelegt ist, daß die Datenbank die Datenkonsistenz durch Constraints sicherstellt und nur auf die Ausnahmen reagiert, dann kann es durchaus ein Installationsproblem sein, wenn eben die zugehörigen Constraints entweder nicht angelegt oder bei der letzten Wartung deaktiviert/gelöscht und dann vergessen wurden...
        Ein Programmierfehler ist natürlich auch nicht auszuschließen. Hier können genausogut Hazard-Effekte auftreten. Wenn die Appl. z.B. vor dem Insert prüft ob ein Datensatz vorhanden ist, dann aber zuviel Zeit vergeht - bzw. keine vernünftige Transaktionssteuerung vorgenommen wird - bis der DS dann tatsächlich eingefügt wird und eine zweite Session mittlerweile "schneller" war.
        Prinzipiell würde ich es aber immer als Datenbank-Design-Fehler bezeichnen, wenn Dinge die eindeutig sein müssen nicht durch UNIQUE-Constraints sichergestellt werden.

        Gruß Falk

        P.S.: Ich hab das mal nach "Diverses" verschoben, da es ja nicht unbedingt ein SQL-Problem ist.
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X