![](https://blogimg.goo.ne.jp/user_image/6f/40/1d447490444eccafbba86049473f482b.png)
商品の在庫管理といった場合、必ずしも単品ごとの在庫を管理するわけではありません。個々の商品単品で管理することが多いと思いますが、小さい商品の場合には、ケース詰めして保管することがよくあります。
個々の商品で何個存在するということとは別に、ある形状で何個あるのか(**商品のケースが100個あるとか、○○ダースあるとか・・・)、在庫(荷物)の形状単位に在庫数を管理する場合があります。
商品によって保管する場合の形状もさまざまです。また、同じ商品でも単品で管理すると同時に荷姿で管理するということもあります。
ある商品をどのような形状で梱包するのかということを考えてみると、さまざまな梱包の仕方があるはずです。
仕入先から搬入された時点では、仕入先で梱包された状態になっているはずですし、自社でセット組みを行うのであれば、セット品用の専用のケースに入っているかもしれません。さらに、単品で保管するということも一つの荷姿と考えられますので、商品から見て複数の荷姿が存在することになります。
また、同じケースやダンボールには特定の商品が梱包されるということもあるでしょうし、別の商品が梱包されるということもあるはずです。
そう考えていくと、商品と荷姿(の種類)の間にはN対Mの関係が存在することが分かります。
そこで、中間(関連)エンティティを追加して以下のように1対Nに分解します。
(図1)商品荷姿
どのよう荷姿で在庫が存在しているのかを管理する必要があるといった場合、荷姿別の在庫管理を行うことになります。
(図2)荷姿別在庫管理
また、ケースの中に実際に商品が何個入っているかという「入数」も管理する必要がありますので、”商品荷姿”の属性として「入数」を持ちます。
(図3)商品荷姿のテーブルイメージ
荷姿タイプ単位に何個入るかが決められているのであれば、”荷姿タイプ”エンティティに標準入り数という属性を持つこともあります。
ただし、商品によって同じ荷姿(ダンボール等)に最大(標準)何個入るかというのは異なります。そこで、”商品荷姿”エンティティの属性として入り数を持たせます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます