1

店舗在庫の現在のデータベース レイアウトには、各商品のレコードを格納し、価格、コスト、説明、SKU などの商品属性を含むテーブルが含まれています。各店舗には、SKU と数量を含むテーブルがあります。 SKU に応じてストアごとに異なるその他の属性がいくつかあります。

これは Items テーブルに各ストアの数量の列を作成するよりは優れていますが、新しいストアが追加されたとき、新しいテーブルに選択する必要があり、新しいアイテムが追加されたときに、これもやや醜いソリューションのようです。 、項目テーブルだけでなく、個々の店舗テーブルにも挿入する必要があります。

私が見ているよりも良い方法はありますか?ある感じです。

4

4 に答える 4

1

SKU、StoreId、Stockレベルの在庫テーブルを用意してみませんか?

例えば

Sku    | StoreId   | StockLevel
1234   | 001       | 15
1235   | 001       | 16
1234   | 002       | 8
1235   | 002       | 0

したがって、ストア002はSKU 1235の在庫がありませんが、ストア001には十分な在庫があります。このテーブルレイアウトでは、次のようなものを使用して、単一のテーブルで在庫レベルのグループ全体のビューを取得することもできます。

select sku, sum(StockLevel) from stock group by sku
于 2010-01-13T16:26:31.770 に答える
0

私が見る限り、あなたは本当に3つのテーブルが欲しいです:

製品

ProductID
Price
Description
...

店舗商品

ProductID
StoreID
Quantity
...

StoreID
Address
...

これは完全に有効で正規化されたデータベース設計であり、基本的には現在のデータベースのように聞こえます。

于 2010-01-13T16:29:39.423 に答える
0

データの正規化のルールに従うと、次のようなテーブルを作成できます。

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_inventory テーブルです。そうすれば、次のように言うことで、特定のストアに絞り込むことができます

WHERE store_id = 1000 

等...

于 2010-01-13T16:28:50.920 に答える
0

アイテムのすべての共通属性に対して 1 つのテーブルを用意するという正しい道を歩み始めたようです。

店舗ごとに個別のテーブルを用意する代わりに、アイテムのキーと店舗のキーをそのテーブルの結合された主キーとして使用して、すべての店舗の在庫数を 1 つの追加テーブルに含める必要があります。

例えば

アイテム

ItemKey
名前
価格
SKU

店舗

StoreKey

アドレス

在庫

StoreKey
ItemKey
数量

Inventory テーブルで StoreKey と ItemKey を一緒に使用すると、レコードが一意に保たれます。


これにより、単一の
商品を簡単に検索できるだけでなく、次のような検索も可能になり
ます

于 2010-01-13T16:36:37.640 に答える