Я работаю над базой данных, в которой будет продукт с несколькими датами истечения срока действия, несколькими себестоимостью и, следовательно, для одного и того же продукта будет несколько записей о запасах. Я сделал для этого исходный дизайн базы данных и хотел спроситьребята, если это хорошая практика или нет.Если нет, пожалуйста, посоветуйте мне, как сделать это правильно.
Это то, о чем я думал до сих пор.
Создание 3 таблиц (1. Product_info - 2.Product_Stock - 3.единиц), а ниже приведена подробная структура:
Units Table
--------------------------
id Name
|------|
1 |Piece |
2 |Pack |
3 |Kilos |
Здесь я перечислю все единицы, которые я буду использовать в качестве единицы базового продукта.
Product Information Table
-----------------------------------------------------------------------------------------------------------------------
id Name AvgCostPrice AvgPrice AvgPackCostPrice AvgPackPrice totalQuantity BaseUnitID multiplier PackBarcode Barcode
|------|------------|--------|----------------|------------|-------------|----------|----------|------------|--------|
1 |Soda | | | | | 108 | 1 | 12 | 111111 | 111222 |
2 |Water | | | | | 50 | 1 | 6 | 222222 | 222111 |
- в приведенном вышеВ таблице средняя себестоимость и цена продажи для пачек и кусков будет рассчитываться исходя из различных запасов, которые у меня есть для указанного продукта.
- В столбце множителя указывается, сколько штук содержится в упаковке продукта.
- Общее количество будет содержать сумму различных количеств запаса, которые у меня есть в (Таблице запасов продукта), а также будет суммироваться только количество для базовой единицы продукта.например: если базовая единица соды является пачкой, то она будет суммировать столбец (PackQTY) в (Таблице запасов продукта).и если он еще будет суммироваться (количество) в этой таблице.
Product Stock Table
---------------------------------------------------------------------------------------------------------------------------
id ProdID UnitID CustomBarcode Quantity PackQTY CostPrice Price PackCostPrice PackPrice expDate Enabled
|------|-------|--------------|-------------|-------|----------|-------|--------------|---------|--------------|---------
1 |1 | 1 | | 84 | 7 | 2.0 | 2.4 | 24.0 | 29 | 20/may/2019 | 1
2 |1 | 1 | | 24 | 2 | 1.5 | 1.9 | 18.0 | 23 | 10/aug/2019 | 1
2 |2 | 3 | | 50 | 0 | 3.0 | 5.0 | 0.0 | 0 | 10/Feb/2019 | 1
1. Включенный столбец будет работать как (булево), чтобы определить, использовать ли эту акцию при продаже.например: если бы я хотел продать банку с газировкой, у меня есть две акции для нее.если запас номер один равен 0, тогда столбец включения будет ложным, и поэтому он будет только вычитать количество, проданное из запаса номер два, и использовать его цену и себестоимость в (SalesDetails Table)
Пользовательский столбец штрих-кода будет использоваться для разделения акций при наличии скидки на акции с почти истекшим сроком годности.
И я также подумал о разделении различных единиц для каждого запаса продукта в (Таблица запасов)
Итак, когда я хочу продать 24 порции соды и 3 пачки соды, она выберет самую старую акцию в зависимости от ее (Enabled Column Value = True) и вычтет из нее это количество, а если оно достигнет нуля, то (Enabledcolumn) Значение изменится на false.
, после этого он снова пойдет и сделает то же самое, но на этот раз он изменит значение PackQtY с 7 на 4, и значение столбца количества будет вычислено через этот [Product_Stock]..Quantity = Product_Stock.Quantity - (значение столбца QtySold * Prodcut_info.Multiplier)], который будет равен 84- (3 * 12) = 48
. Выходная информация структуры продаж будет выглядеть следующим образом:
Sale Details Table
----------------------------------------------------------
id ProdID UnitID Quantity CostPrice Price total CostTotal
|------|-------|-----------|-------------|-------|------|---------|
1 |1 | 1 | 24 | 2.0 | 2.4 | 57.6 | 48.0 |
2 |1 | 2 | 3 | 18.0 | 23.0 | 69.0 | 54.0 |
Product Stock Table (After Selling 24 pieces of Soda and 3 packs of Soda)
---------------------------------------------------------------------------------------------------------------------------
id ProdID UnitID CustomBarcode Quantity PackQTY CostPrice Price PackCostPrice PackPrice expDate Enabled
|------|-------|--------------|-------------|-------|----------|-------|--------------|---------|--------------|---------
1 |1 | 1 | | 48 | 4 | 2.0 | 2.4 | 24.0 | 29 | 20/may/2019 | 1
2 |1 | 1 | | 0 | 0 | 1.5 | 1.9 | 18.0 | 23 | 10/aug/2019 | 0
Извините, если я не очень хорошо объяснил.Заранее большое спасибо.