首先,我建议不要存储计算值,并且强烈建议不要使用calculated fields in tables。一般情况下,calculations should be performed by queries。
我也强烈建议不要使用多值字段,因为您的图像似乎显示。
一般来说,当遵循database normalisation 的规则时,大多数销售数据库的结构都非常相似,包含以下主要表格(以及其他表格):
- 产品(又名库存物品)
- 客户
- 订单页眉
- 订单行(又名订单明细)
作为 MS Access 模板免费提供的经典 Northwind sample database 是一个值得您学习的好例子。
通过上述结构,观察每个表都有一个用途,每个记录存储与单个实体相关的信息(无论是单个产品,单个客户、单个订单或单个订单行)。
例如,你可能有类似的东西:
产品
+--------+-----------+-----------+
| 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_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 表中的信息可能会随着时间而改变。