Це питання насправді не про "програмування" (не характерне для будь-якої мови чи бази даних), а більше про дизайн та архітектуру. Це також питання типу "Який найкращий спосіб зробити Х". Сподіваюся, це не викликає великих "релігійних" суперечок.
У минулому я розробляв системи, які так чи інакше ведуть певну форму інвентаризації предметів (не стосується яких предметів). Деякі використовують мови / БД, які не підтримують транзакції. У цих випадках я вирішив не зберігати кількість товару на руках у полі в записі товару. Замість цього кількість на руці розраховуються на загальну суму інвентаризації отримала - загальна кількість запасів продана. Це майже не призвело до розбіжностей в запасах через програмне забезпечення. Таблиці належним чином індексуються, а продуктивність хороша. Існує процес архівування на випадок, якщо кількість записів вплине на продуктивність.
Кілька років тому я почав працювати в цій компанії і успадкував систему відстеження запасів. Але кількість зберігається в полі. Коли запис реєструється, отримана кількість додається до поля кількості для товару. Коли товар продається, кількість віднімається. Це призвело до розбіжностей. На мою думку, це не правильний підхід, але попередні програмісти тут клянуться ним.
Я хотів би знати, чи існує консенсус щодо того, яким є правильний спосіб розробити таку систему. Також, які ресурси доступні, надруковані чи в Інтернеті, щоб отримати поради щодо цього.
Дякую