Golden Basim Ответов: 1

Какова наилучшая практика обработки запасов товаров ?


какова наилучшая практика обработки запасов товаров ?

Что я уже пробовал:

я искал и основал два метода :

1 - это лучше создать одну строку для каждого товара (в зависимости от его свойств) и увеличить поле запаса в этой строке или уменьшить его в зависимости от процесса?

--------------------
- item --- stock ---
- x    --- 5    ---
--------------------


b>2-создать строку (запись) для каждой операции, т. е. если происходит покупка, то создается строка и в поле входящие = 10, а если происходит продажа, то исходящие(любое другое выражение) = 5?

----------------------------------
- item --- income --- outgoing ---
- x    --- 10     --- 0       ---
- x    --- 0      --- 5       ---
----------------------------------


я заметил, что метод 1 вызывает проблему с запасом, когда я использовал OnDuplicateKeyUpdate или INSERT IGNORE in MySqlBackup.NET - решение для резервного копирования MySQL для C#, VB.NET, ASP.NET

1 Ответов

Рейтинг:
11

MadMyche

Я бы сделал это таким образом, чтобы иметь таблицу инвентаризации, а также таблицу корректировки запасов.

CREATE TABLE dbo.Inventory (
  StockNumber INT  PRIMARY KEY,
  Quantity    INT,
  -- other properties
)
CREATE TABLE dbo.InventoryAdjustment (
  AdjustmentID INT PRIMARY KEY,
  StockNumber  INT,        -- can be indexed or foreign key to Inv.StockNumber
  AdjDate      DATETIME,
  AdjAmount    INT,
  -- other properties
)


И когда корректировка была сделана, вы бы сделали обновление на Инвентарь И вставку на InventoryAdjustment
UPDATE Inventory
SET    Quantity = Quantity + @Adjusment
WHERE  StockNumber = @StockNumber

INSERT InventoryAdjustment (StockNumber, AdjDate, AdjAmount)
VALUES (@StockNumber, GetDate(), @Adjustment)


Это позволит вам видеть номенклатуры и текущий уровень запасов с помощью одной таблицы, а также журнал индивидуальных корректировок по номенклатуре.


Golden Basim

в торговой операции ?

Quantity = Quantity - @Adjusment

MadMyche

Так и должно быть @adjustment, и будет представлять собой стоимость проданного количества. Будут запущены как сценарии обновления, так и вставки

Golden Basim

у меня есть запас с двумя разными сроками годности (один и тот же товар) , я должен создать две записи в разделе "инвентарь" ?

MadMyche

Существуют различные последовательности мыслей по этому поводу; система, которую я сделал для местной службы скорой помощи, использовала третью таблицу для отслеживания информации о "партии", а Программирование отчетов генерировало отдельные листы для подсчета запасов этих предметов