Ankündigung

Einklappen
Keine Ankündigung bisher.

Speicherung von Artikeln in Bestellposition

Einklappen

Neue Werbung 2019

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

  • Speicherung von Artikeln in Bestellposition

    Hallo,
    eigentlich ein alter Hut: Eine Bestellung hat n Positionen. Und bei den Positionen sollten die Daten wie Bezeichnung, Gewicht, Preis etc. mit gespeichert werden.
    Das "klassische" Model würde in etwa so aussehen.

    Code:
    Artikel
    - Artikel-Nr. (PK)
    - Bezeichnung
    - Preis
    
    Bestellungen
    - Bestell-Nr. (PK)
    - Anschrift
    - Datum
    
    Bestellpositionen
    - Bestell-Nr. (PK)
    - Positions-Nr. (PK)
    - Aritkel-Nr.
    - Bezeichnung
    - Menge
    - Preis
    Nun frage ich mich, ob man nicht besser mit einer Art Versionierung arbeitet, also z.B.:

    Code:
    Artikel
    - Artikel-Nr. (PK)
    - Aktuelle Version-Nr.
    
    Artikel Versionen
    - Artikel-Nr. (PK)
    - Aritkel-Versions-Nr. (PK)
    - Bezeichnung
    - Preis
    
    Bestellungen
    - Bestell-Nr. (PK)
    - Anschrift
    - Datum
    
    Bestellpositionen
    - Bestell-Nr. (PK)
    - Positions-Nr. (PK)
    - Aritkel-Nr.
    - Aritkel-Versions-Nr.
    - Menge

    Die Daten die zu einem Artikel gehören und geändert werden können, werden in einer extra Tabelle gespeichert. Jedes mal, wenn die Daten eines Artikel geändert werden, wird ein neuer Datensatz in die Tabelle "Artikel Versionen" erstellt.
    Entsprechend wird in der Tabelle "Bestellpositionen" nur die Artikel-Nr. zusammen mit der Versions-Nr. gespeichert.

    Vorteil wäre (bei wenig Änderungen u. viel Bestellungen) geringer Speicherverbrauch, vor allem wenn viele Daten mit gespeichert werden müssten (z.B. bei Büchern: Autor, Serie, ISBN, EAN, ...). Zudem hätte man eine Nachverfolgung der Änderungen; nach dem Motto wer hat was wann geändert...

    Nachteilig ist natürlich der erhöhte Aufwand beim lesen...

    Was haltet ihr davon? Sollte man den "klassischen" Weg mit Redundanz aber bequemeren und schnelleren lesen nehmen oder eher doch die Sache mit den Versionen?
    (Also rein theoretisch, wenn die Anforderung keine Versionierung der Artikel enthält.)

  • #2
    Was haltet ihr davon? Sollte man den "klassischen" Weg mit Redundanz aber bequemeren und schnelleren lesen nehmen oder eher doch die Sache mit den Versionen?
    Ich vote eindeutig für Versionen. Das ist Modell-technisch die sauberste Lösung. Wird bei großen Shops auch immer so umgesetzt, weil du dort oft Revisions-Sicherheit benötigst.
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design [B]before[/B] you start to write code!
    2. Discuss and review it together with [B]experts[/B]!
    3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
    4. Write [I][B]clean and reusable[/B][/I] software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Kommentar

    Lädt...
    X