Sql POS数据库布局

Sql POS数据库布局,sql,database-design,layout,inventory,Sql,Database Design,Layout,Inventory,我们当前的商店库存数据库布局包括一个表,其中包含每个物品的记录,并包括物品属性,如价格、成本、说明、SKU等。然后,每个商店都有一个表,其中包含SKU和数量,以及其他一些因SKU而异的属性 虽然这比在Items表中为每个门店的数量设置一列要好,但这似乎也是一个有点难看的解决方案,因为当添加新门店时,您需要在新表中进行选择,当添加新项目时,您不仅必须在Items表中插入,而且还必须在每个门店表中插入 有没有比我现在看到的更好的方法?感觉好像有。为什么不创建一个包含SKU、StoreId和库存级别的

我们当前的商店库存数据库布局包括一个表,其中包含每个物品的记录,并包括物品属性,如价格、成本、说明、SKU等。然后,每个商店都有一个表,其中包含SKU和数量,以及其他一些因SKU而异的属性

虽然这比在Items表中为每个门店的数量设置一列要好,但这似乎也是一个有点难看的解决方案,因为当添加新门店时,您需要在新表中进行选择,当添加新项目时,您不仅必须在Items表中插入,而且还必须在每个门店表中插入


有没有比我现在看到的更好的方法?感觉好像有。

为什么不创建一个包含SKU、StoreId和库存级别的库存表

e、 g

因此,002店的sku 1235已售罄,但001店的库存充足。此表格布局还允许您使用以下内容在单个表格中查看集团范围内的库存水平

select sku, sum(StockLevel) from stock group by sku

为什么不创建一个包含SKU、StoreId和库存级别的库存表

e、 g

因此,002店的sku 1235已售罄,但001店的库存充足。此表格布局还允许您使用以下内容在单个表格中查看集团范围内的库存水平

select sku, sum(StockLevel) from stock group by sku

通过遵循数据规范化规则,您可能希望创建如下表:

store_id | sku    | quantity | other_attributes ... 
---------+--------+----------+---------------------
    1000 | 129832 |      234 |                  ...
    1000 | 129833 |      334 |                  ...
    1000 | 129834 |       23 |                  ...
    1001 | 129832 |        0 |                  ...
    1001 | 129833 |       12 |                  ...
    1001 | 129834 |       10 |                  ...
    ...
本质上,它是一个store_库存表。这样,您可以通过以下方式过滤到给定的商店

WHERE store_id = 1000 

等等。

通过遵循数据规范化规则,您可能希望创建如下表:

store_id | sku    | quantity | other_attributes ... 
---------+--------+----------+---------------------
    1000 | 129832 |      234 |                  ...
    1000 | 129833 |      334 |                  ...
    1000 | 129834 |       23 |                  ...
    1001 | 129832 |        0 |                  ...
    1001 | 129833 |       12 |                  ...
    1001 | 129834 |       10 |                  ...
    ...
本质上,它是一个store_库存表。这样,您可以通过以下方式过滤到给定的商店

WHERE store_id = 1000 

等等。

在我看来,你真的想要三张桌子:

产品

ProductID
Price
Description
...
ProductID
StoreID
Quantity
...
StoreProduct

ProductID
Price
Description
...
ProductID
StoreID
Quantity
...
商店

StoreID
Address
...

这是一个非常有效和规范化的数据库设计,听起来基本上就是您现在所拥有的。

就我所知,您确实需要三个表:

产品

ProductID
Price
Description
...
ProductID
StoreID
Quantity
...
StoreProduct

ProductID
Price
Description
...
ProductID
StoreID
Quantity
...
商店

StoreID
Address
...

这是一个非常有效和规范化的数据库设计,听起来基本上就是您现在所拥有的。

这听起来像是在正确的路径上开始的,为项目的所有公共属性提供了一个表

所有门店的库存盘点不应该为每个门店单独设置一个表,而应该在一个单独的附加表中,使用物料的键和门店的键作为该表上的组合主键

比如说

项目 ItemKey
名称
价格
SKU

商店 StoreKey
名称
地址

库存 StoreKey
ItemKey
数量

在库存表上同时使用StoreKey和ItemKey将保持记录的唯一性

这样不仅可以轻松查找单个项目,还可以查找以下内容:
按StoreKey列出的一家商店中所有商品的数量
ItemKey在所有商店中的一个商品数量
所有商店的哪些商品数量都较低

etc

这听起来像是在正确的路径上开始的,它为项目的所有公共属性提供了一个表

所有门店的库存盘点不应该为每个门店单独设置一个表,而应该在一个单独的附加表中,使用物料的键和门店的键作为该表上的组合主键

比如说

项目 ItemKey
名称
价格
SKU

商店 StoreKey
名称
地址

库存 StoreKey
ItemKey
数量

在库存表上同时使用StoreKey和ItemKey将保持记录的唯一性

这样不仅可以轻松查找单个项目,还可以查找以下内容:
按StoreKey列出的一家商店中所有商品的数量
ItemKey在所有商店中的一个商品数量
所有商店的哪些商品数量都较低