Во-первых, я бы советовал не хранить вычисленные значения, а также настоятельно рекомендовал бы против , используя вычисленные поля в таблицах . В общем, вычисления должны выполняться по запросам .
. Я бы также настоятельно рекомендовал не использовать многозначные поля, как показывают ваши изображения.
В целом, если следовать правилам нормализации базы данных , большинство баз данных по продажам структурированы очень похожим образом и содержат следующие основные таблицы (среди прочих):
- Продукты ( aka Stock Items)
- Клиенты
- Заголовок заказа
- Строка заказа (aka Detail Order)
Хороший пример для изучения быть классом c Пример базы данных Northwind , предоставляемый бесплатно в качестве шаблона для MS Access.
При использовании приведенной выше структуры обратите внимание, что каждая таблица служит своей цели, а каждая запись хранит информацию, относящуюся к отдельному объекту (будь то один продукт , один клиент , один заказ или одна строка заказа ). * 10 40 *
Например, у вас может быть что-то вроде:
Продукты
+--------+-----------+-----------+
| Prd_ID | Prd_Desc | Prd_Price |
+--------+-----------+-----------+
| 1 | Americano | $8.00 |
| 2 | Mocha | $6.00 |
| 3 | Latte | $5.00 |
+--------+-----------+-----------+
Клиенты
+--------+--------------+
| Cus_ID | Cus_Name |
+--------+--------------+
| 1 | Joe Bloggs |
| 2 | Robert Smith |
| 3 | Lee Mac |
+--------+--------------+
Заголовок заказа
- Первичный ключ:
Ord_ID
- Иностранный Ключи:
Ord_Cust
+--------+----------+------------+
| Ord_ID | Ord_Cust | Ord_Date |
+--------+----------+------------+
| 1 | 1 | 2020-02-16 |
| 2 | 1 | 2020-01-15 |
| 3 | 2 | 2020-02-15 |
+--------+----------+------------+
Строка заказа
- Первичный ключ:
Orl_Order
+ Orl_Line
- Иностранные ключи:
Orl_Order
, Orl_Prod
+-----------+----------+----------+---------+
| Orl_Order | Orl_Line | Orl_Prod | Orl_Qty |
+-----------+----------+----------+---------+
| 1 | 1 | 1 | 2 |
| 1 | 2 | 3 | 1 |
| 2 | 1 | 2 | 1 |
| 3 | 1 | 1 | 4 |
| 3 | 2 | 3 | 2 |
+-----------+----------+----------+---------+
Вы также можете сохранить описание продукта и цену в записях строки заказа, чтобы они сохранялись в точке продажи в качестве информации в Products
таблица может меняться со временем.