Dies ist eine Frage, die sich nicht wirklich mit "Programmieren" befasst (ist nicht spezifisch für eine Sprache oder Datenbank), sondern eher mit Design und Architektur. Es ist auch eine Frage vom Typ "Was ist der beste Weg, um X zu machen". Ich hoffe, dass dies nicht zu vielen "religiösen" Kontroversen führt.
In der Vergangenheit habe ich Systeme entwickelt, die auf die eine oder andere Weise eine Art Inventar von Gegenständen führen (nicht relevant, welche Gegenstände). Einige verwenden Sprachen / DBs, die keine Transaktionen unterstützen. In den Fällen , entschied ich mich nicht Element zu speichern Zahl für die in einem Feld in dem Artikeldatensatz. Stattdessen wird die verfügbare Menge als Gesamtbestand berechnet - Gesamtbestand verkauft. Dies hat zu fast keinen Unstimmigkeiten im Inventar aufgrund von Software geführt. Die Tabellen sind ordnungsgemäß indiziert und die Leistung ist gut. Es gibt einen Archivierungsprozess für den Fall, dass die Anzahl der Datensätze die Leistung beeinträchtigt.
Vor einigen Jahren begann ich in dieser Firma zu arbeiten und erbte ein System, das das Inventar verfolgt. Die Menge wird jedoch in einem Feld gespeichert. Wenn ein Eintrag registriert wird, wird die empfangene Menge dem Mengenfeld für den Artikel hinzugefügt. Wenn ein Artikel verkauft wird, wird die Menge abgezogen. Dies hat zu Unstimmigkeiten geführt. Meiner Meinung nach ist dies nicht der richtige Ansatz, aber die vorherigen Programmierer hier schwören darauf.
Ich würde gerne wissen, ob es einen Konsens darüber gibt, wie man ein solches System richtig entwirft. Auch welche Ressourcen verfügbar sind, gedruckt oder online, um sich hierzu beraten zu lassen.
Vielen Dank