私は現在、POSデータベースを再設計して、データの管理などに非常に役立つように、より正規化しようとしています。私が扱わなければならないデータに基づいて、最良の設計慣行について少し確信が持てません.と。まず、基本的に 2 つのメジャー セットがあり、共通のキーを共有します。在庫データ、単位とドル、そして POS データ、単位とドルがあります。これらはそれぞれ、顧客、店舗、アイテム、および日付のレベルです。
私がやったこと(この時点ではほとんど理論上)は、セパレートテーブルを作成することです
Item level information
Item_ID,
Customer_ID
itemnumber
(and a few other item specific information).
Stores
Store_ID,
Customer_ID,
Store Number,
(and essentially address information)
Customer
Customer_ID,
Customer Number
(other customer specific information like name).
したがって、これらの「サポート」テーブルに加えて、
Main Inventory Data
Store_ID
Item_ID
まったく同じIDを持つPOSデータテーブルもあります。
基本的に私の質問は次のとおりです。
- 店舗と商品の両方のテーブルの一部ですが、Pos Data と Inventory Data テーブルに顧客 ID を含める必要がありますか?
2 番目の質問は、顧客 ID を追加する場合、これらすべてのテーブルを結合する場合、
- すべてのテーブル (Pos Data、Stores、Items または Inventory Data、Stores、Items) の顧客 ID を customers テーブルに結合しますか、または
- Pos Data テーブルから結合するだけで十分です。
データに関して、いくつかの追加の詳細を説明させてください。例として、CustomerA と CustomerB という 2 つの顧客がいます。CustomerA には、店舗番号が 1000、1025、1036、および 1037 である複数の店舗があります。CustomerB には、店舗番号が 1025、1030、および 1037 である複数の店舗があります。店舗番号 1025 および 1037 はたまたま顧客間で同じですが、店舗自体ははユニークで、まったく異なります。
CustomerA の店舗番号 1000 は、アイテム ABC、DEF、および EFG の 3 つのアイテム (これは卸売の観点です) を販売しています。CustomerA の店舗番号 1025 では、ABC、HIJ、および XYZ の 3 つの商品も販売しています。
これらの各アイテムには、特定の顧客と店舗番号、POS データ、および在庫データとの関係に関して、2 つのインポート データが含まれています。POS データは、販売されたアイテムの数量である PosUnits と、その店舗で販売されたアイテムの合計ドルである PosDollars の形式になります (基本的に、ユニット数に販売された価格)。在庫データは、店舗に在庫がある商品の数量である InventoryUnits になります。[注意すべき点として、すべての顧客から常に両方のデータを受け取るとは限らないため、在庫と pos のデータを別々のテーブルに分けました。また、在庫データと POS データは通常、別々に分析されます]。
したがって、私の例に戻ると、CustomerA の店舗番号 1000、アイテム ABC は 100 ユニット、つまり $1245.00 を販売した可能性があります。CustomerA の店舗番号 1025 は、同じ商品を 124.50 ドルで 10 単位しか販売していない可能性があります。
ここで CustomerB に戻ると、たまたまこの Customer にも ABC という名前の商品があり、多くの店舗で販売されています。CustomerA のアイテム ABC は、CustomerB のアイテム ABC とはまったく異なる製品です。彼らが同じ名前を付けたのはまったくの偶然です。
この最後の明確化ポイントを追加させてください。これは、おそらく以前に述べておくべきでした。問屋としての視点です。アイテムと言うのは問屋の品番ではなく、お客様の品番のことです。卸売業者のアイテムを取得する際に関連する相互参照があり、顧客は同じ卸売業者のアイテム番号を参照する複数のアイテム番号を持っている場合があります。とはいえ、そこまで掘り下げる必要はないと思います。