1

我的公司正在使用这个模型来管理库存

模型 1 http://img534.imageshack.us/img534/6024/modeltest2.jpg

但是我遇到了问题,因为在这个月我们在同一个仓库购买了一些不同价格、有效期的塑料袋。

所以现在我把模型改成了这个。

模型 1 http://img16.imageshack.us/img16/8416/modeltest.jpg

我的问题是这是否可以.. 它正在工作,但这是我第一次创建一个没有主键的表。

数据示例:

PRODUCT        WAREHOUSE   Quantity   Price  Expiration_Date
PLASTIC BAG    NEW YORK    20         1.20$  12-10-2013
PLASTIC BAG    NEW YORK    130        1.50$  21-12-2015

谢谢

4

2 回答 2

1

一个问题,特定于 MySQL 和 InnoDB 存储,是 InnoDB 将在内部静默创建一个额外的 6 字节整数作为代理主键。此外,如果您可以通过主键执行查询,则对任何 InnoDB 表的查询效率会更高。因此,如果可能,定义主键(或唯一键)对您有利。

如果 Product_ID、Warehouse_ID 列的组合不足以唯一标识每一行,那么您可以添加第三列来区分重复项。例如,Stock_ID 什么的。

于 2012-11-22T21:34:33.030 回答
1

基本上没问题。在销售、仓库系统中,您不能在产品表中保存所有具有不同到期日期的产品,因为每个产品都会有很多记录。但通常您需要将它们保存在“Item_Ledger_Entry”表中,该表将是所有销售或采购交易。

您使用相同的产品,只是具有不同的到期日期。我认为您根本不需要 Priamrey Key inProduct has warehouseKey

于 2012-11-22T21:53:03.663 回答