細かく商品を管理できるテーブルの作成方法

このQ&Aのポイント
  • 商品情報を格納しているテーブルがありますが、新たに商品テーブルを作成する必要があります。1社のみで扱う商品や共通で扱う商品を管理するため、細かく商品を管理できるテーブルを作成することが必要です。
  • 商品マスタのフィールド構成は、商品コード、商品名、カテゴリ、備考、削除フラグ、作成日、作成者、更新日、更新者です。カテゴリは商品毎をまとめるために付けられており、例えば「衣服」とか「小物」などがあります。
  • 新しい商品テーブルを作成するにあたり、1社のみで扱う商品や共通で扱う商品を区別するためのフィールドを追加することが大切です。また、各商品の詳細情報を格納するために必要なフィールドも追加することで、細かく商品を管理できるテーブルを作成することができます。
回答を見る
  • ベストアンサー

細かく商品を管理できるテーブルとは

商品情報を格納しているテーブルがあります。 現在の商品マスタのフィールド構成は以下の通りです。 ・商品コード ・商品名 ・カテゴリ ・備考 ・削除フラグ ・作成日 ・作成者 ・更新日 ・更新者 ※カテゴリは商品毎をまとめる為に付けています。  例えば「衣服」とか「小物」などです。 今までは1社のみの商品を管理をしていましたがもう1社増える事になったので新しく商品テーブルを作成する事になり、どうか皆さんのお知恵を借りたいと思い投稿しました。。 これからは1社のみで扱っている商品や共通(2社)で扱っている商品など、さまざまです。 なので細かく商品を管理できるようなテーブルを作成したいと思っています。 些細な事でも何でも構いませんのでアドバイスいただけたら嬉しいです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

1.テーブルを追加する  1-1.取扱い業者テーブル  1-2.カテゴリテーブル 2.商品マスタテーブルにフィールドを追加する  2-1.取扱い業者コード  2-2.カテゴリコード  2-3.削除日 ・取扱い業者のテーブルを追加すると、業者が増えた時に対応できる ・カテゴリーリーを手入力にすると小、小物等  同じカテゴリーであっても入力者により、また同一人であっても  異なる単語で入力する恐れがある ・削除日は削除フラグとペアである(フラグを立てた日付) 尚、例えばのカテゴリーを見る限り、あまりにも大ざっぱすぎると思います。  これを機会にカテゴリーの整理をなさっては コードはオートナンバーとして、それ自体に意味付けはしない方が良いと思います。 でないとコード付のための約束事が増えます。 検索、分類集計に必要ならそれに見合うフィールドを追加します。  例えば[振り仮名、紳士服、婦人服、装飾品] ・マスターですが、繰り越し数、入庫数、出庫数、仕入金額、売上金額といった  テンポラリーフィールドはシステム構築を楽にします。

T-k_jp
質問者

お礼

連絡が遅くなって申し訳ありませんでした。 カテゴリーテーブルと業者テーブルを作成して対応したいと思います。 アドバイス、本当にありがとうございました。 では、失礼します。

その他の回答 (1)

  • uams
  • ベストアンサー率63% (100/157)
回答No.1

商品マスターのほかに、仕入先マスターを作ってみてはいかがでしょうか?商品の取り扱いが増えると商品コードの重複が懸念事項かと思います。 たとえば、仕入先マスターとして「仕入先コード」「仕入先名」などのフィールドを持つテーブルを作ります。そして、このテーブルに「001、A社」「002、B社」といったレコードを追加します。 既存の商品マスターに「仕入先コード」を追加して、仕入先コードと商品コードでユニークになるようにします。「仕入先コード」を追加するときは、既定値として元々扱っていた仕入先のコードを指定しておけばスムースです。 商品マスターに定価と仕入値などがあれば、類似商品を仕入先で比較してより安いものを選ぶなどの判断も可能かと思います。 ご参考までにどうぞ。

T-k_jp
質問者

お礼

返事が遅くなってすみません。 なるほど参考になりました。 ありがとうございました。

関連するQ&A

  • マスタの更新について

    お世話になります。 マスタを登録・更新するプログラムを作成しています。 入力画面には以下の項目を配置しています。  ・商品コード  ・商品名  ・備考 値を格納するデータベースのテーブルのフィールドは以下の通りです。  ・商品コード  ・商品名  ・備考  ・削除フラグ  ・登録日  ・登録者  ・更新日  ・更新者 ※主キーは商品コードです。 別画面でこのマスタ内容を選択してデータを作成しています。その為、現在は整合性を取るために、マスタを更新する時は商品コードを変更できないようにして更新しています。 ここで皆さんに質問があります。 現在のテーブルにはオートナンバー型のようなフィールドを作成していません。 一般的にこのようなマスタを作成する際はオートナンバー型のようなフィールドを作成するものなのでしょうか。またどのように対応するのが望ましいのでしょうか。 くだらない内容で大変申し訳ありませんが宜しくお願いします。 私の説明で皆さんに伝える事ができたか心配ですがどうぞ、アドバイス等をいただけませんでしょうか。 何卒、宜しくお願いします。

  • レコードに対する各ユーザの未読管理

    メインのテーブルのレコードに対する、ユーザごとの未読・既読フラグをつけたいと思い、いろいろな案を考えてみてはいますが、何か懸念事項がありなかなかいい方法が見つかりません。 サーバにDBがあり、メインテーブルに 管理番号・版数・内容・削除フラグがあるとします。 ※管理番号・版数が主キー 各ユーザは、VBで作成したシステムから上記テーブルへ更新を行います。 ※各ユーザはクライアントに依存せず、様々なPCからログインをし、ユーザ数は増減します 新規の場合、MAX(管理番号)+1 を管理番号に設定し、版数を1で登録します。 修正の場合、既存のレコードに削除フラグを立て、管理番号は同じで版数を+1してINSERTします。 削除の場合、削除フラグをたてます。 新規・修正の場合、登録ユーザ以外のユーザは未読として扱います。 また、未読の間に何度も版数アップされても、他のユーザは最新のレコードのみ閲覧し、既読にします。 未読フラグについて、自分なりにいろいろ考えてみましたが、それぞれ懸念事項が発生します (1)メインテーブル(もしくは他のテーブル)のレコードに対して、未読フラグフィールドを設定   ・ユーザ情報を格納してるテーブルに、各ユーザ事に1から連番を振っておく   ・未読フラグは「01001」のようにデータを持たせ、1番のユーザは未読、2番のユーザは既読と判断する  →ユーザが減少したときに無駄なビットがどんどん増えていく (2)別テーブルに、管理番号・ユーザID・(版数)を持たせる   ・レコードがあるときは未読で、既読の時はレコードを削除  →登録時にユーザ数分レコードを作る必要があり、負荷がかかる。しかし、基本は未読→既読のため、データの圧迫はほとんどなし。 (3)各ユーザ事に未読フラグフィールドを作成   ・「010010011100」のようなデータを格納   ・管理番号を1からの連番にし、管理番号のビットが 0なら未読・1なら既読  →修正で更新した際に未読にするのが大変 (4)メインテーブル(もしくは他のテーブル)へ各ユーザようにフラグを管理するフィールドを設定  →フラグ管理をしたり、他ユーザが更新・追加をしたときに楽。しかし、ユーザが増えた時に都度フィールドを追加しなければならないため、現実的ではない。 といった感じです。ちなみに環境は、 OS:XP 、 PG:VB.NET 、 DB:ACCESS or SQLServer になります。 今のところ(1)が一番有効方法かと思いますが、他にもっと効率の良い方法を探しています。 とても長文になり、また分かりづらい文書になってしまいすいません。 同じような経験があるかたや知識豊富な方、ぜひご教授お願いします。

  • テーブルのフィールド名の命名について

    テーブルを作成する際に下記の項目のフィールドを考えていますがいい英語のフィールド名が浮かびません。 ・作成者 ・作成日 ・更新者 ・更新日 申し訳ありませんがご教授いただけませんでしょうか。 また命名で気をつける事がありましたらアドバイスいただけたら幸いです。 宜しくお願いします。

  • 2つのテーブルAとBをマージして新しいテーブルCを作成したいのです。

    2つのテーブルAとBをマージして新しいテーブルCを作成したいのです。マージするときは、最新の売上日フィールドをもつレコードを取得します。環境はAccess2000です。どんなSQL文を作成すればいいのでしょうか?  また、テーブルAにしかないレコード、又はテーブルBにしかないレコードは、そのままテーブルCに追加したいです。 ※下記テーブルAとBは、Access内に存在します。テーブルCはAとBのマージ後の結果作成されるテーブルです。 テーブルA 顧客番号   売上日   商品名   備考    1  2000-01-01  ふでばこ   A    2  2000-02-02  鉛筆     A    3  2000-03-03  定規     A    4  2000-04-04  シャーペン  A   99  2000-09-09  パソコン   A テーブルB 顧客番号   売上日   商品名   備考    4  2001-04-04  シャーペン  B    2  2000-02-02  鉛筆     B    3  2001-03-03  定規     B    1  1999-01-01  ふでばこ   B  100  2005-11-11  ワープロ   B テーブルAとBを、最新の売上日の条件でレコードを取得し新しいテーブルCを作成する。 テーブルC 顧客番号   売上日   商品名   備考    1  2000-01-01  ふでばこ   A    2  2000-02-02  鉛筆     A    3  2001-03-03  定規     B    4  2000-04-04  シャーペン  A   99  2000-09-09  パソコン   A  100  2005-11-11  ワープロ   B SQL文で処理可能なのでしょうか?

  • ACCESS テーブル間のデータリンク

    こんにちは。 ほぼアクセス初心者です。 大学の頃に習った記憶といくつか購入した本を頼りに、実家の会社の仕入や在庫の管理データベースを作ろうとしています。 とりあえず商品データや仕入先データをテーブルにまとめました。 次にしたいのが年度末の棚卸の数量を入力しておくテーブルの作成です。 そこで先に作った商品データを元に棚卸入力用のテーブルを作ろうとしているのですが、テーブルのコピーくらいしかわかりません。 商品の種類が約1000種類前後あるんですが、先に作ったデータが完全なものではないこともあり、テーブルのコピーをした後にデータの入れ忘れや入れ間違いの訂正をする必要もあると思います。 そこで商品データで更新した情報を棚卸入力用のほうでも自動で更新するようにしたいのですが、何かいい方法があるのでしょうか? 過去の質問も探してみたのですが、専門用語はイマイチわかりませんでした。 ちなみに商品データと棚卸入力用のテーブルは次のようなフィールドで構成しています。 商品データ ・種別名 ・メーカー名 ・個別ナンバー(種別ごとに1~999を割り当ててます) ・商品名 ・備考 棚卸入力用 ・商品名 ・備考 ・事務所在庫数 ・車A在庫数 ・車B在庫数 どなたか宜しくお願いします。

  • 一つのSQLで実行する方法

    SQL初心者です。以下のような商品テーブルの備考欄の文字列をアップデートするSQLですが、ひとつのSQL文で実行させるにはどのように記述すれば良いかお教えいただけませんでしょうか? UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'%明太子味',''); UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'のり味',''); UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'みそ味','');

  • Access2003 更新クエリについてご教授下さい。

    初めまして。 今回、初めてご質問させていただきます。 Access2003の更新クエリについてご教授お願いします。 AテーブルとBテーブルがあります。 ■Aテーブル(ALLテーブル)  各フィールド名:  名前(テキスト型)/完了(Yes/No型)/備考欄(テキスト型) ■Bテーブル(更新させたいテーブル)  各フィールド名:  名前(テキスト型)/完了(Yes/No型)/備考欄(テキスト型)  (※Aテーブルと同じです。) Bテーブルの内容をAテーブルへ更新させたいのですが 名前/完了のフィールドは、更新クエリで完成出来ましたが 備考欄の更新が出来ません。 (※備考欄には、コメントがそれぞれ入っています。) どのような形でクエリを作成すれば Aテーブルへ更新が可能になるのでしょうか? 以上、ご教授お願い致します。

  • クエリを使ってテーブルを更新したいのですが

    すみません、大学でやっているプロジェクトが行き詰ってしまい、初めて書き込みをさせていただきます。 今私はaccess 2003でレストランの在庫管理システムを作ろうとしているのですがフィールド間の計算がうまくいかないので困っています。テーブルは3つあり テーブル  :商品テーブル ーーーーーーーーーーーーーーーーーーーーー フィールド :商品名(主キー)text フィールド :販売数 number ーーーーーーーーーーーーーーーーーーーーー テーブル  :グラムテーブル ーーーーーーーーーーーーーーーーーーーーー フィールド :グラムテーブルId(主キー)auto number フィールド :商品名 text フィールド :食材名 text フィールド :食材に使うグラム数 number ーーーーーーーーーーーーーーーーーーーーー テーブル  :食材テーブル ーーーーーーーーーーーーーーーーーーーーー フィールド  :食材名(主キー)text フィールド  :食材の在庫 number ーーーーーーーーーーーーーーーーーーーーー リレーションシップは商品テーブルとグラムテーブルが1対多の関係で、食材テーブルとグラムテーブルも1対多の関係です。 私の中のイメージでは使用者が商品テーブルの販売数を打ち込んで食材の在庫数が変わっていくような感じで作りたいので、とりあえず、更新クエリを使って 食材テーブル.食材の在庫:[食材の在庫]-([商品テーブル.販売数]*[グラムテーブル.食材に使うグラム数]) という式を打ち込みましたが変化はありませんでした。なにか、間違っている部分もしくは変更しなきゃならない部分があるならご教授お願いいたします。 わかりにくい文で本当にすみません。

  • access 商品管理

    access2007で在庫管理をしようと入力している最中ですが、 今は商品は商品で一つのデーブルに全て入れています 全部で500個なのですが、サイズや形状やら、ものによって必要な項目が違ってくるのですが、 その場合はカテゴリ別に商品テーブルを作った方がいいのでしょうか? メリットデメリットなども教えていただけるとありがたいです

  • Access フォームから複数テーブルの入力は?

    フィールドが300ぐらいあるので項目ごとにテーブルで分けています。 1つにまとめるクエリを作成して、そのクエリを元にフォームを作成しました。 テーブルはフィールド名:品番で1対1のリレーションを組んでいます。 テーブル:商品カラー  ・フィールド:品番  ・フィールド:カラー テーブル:商品サイズ  フィールド:品番  フィールド:サイズ クエリのフィールド  フィールド名:品番 (商品カラーのフィールド:品番を指定)  フィールド名:カラー (商品カラーのフィールド:カラーを指定)  フィールド名:サイズ (商品サイズのフィールド:サイズを指定) この場合、品番をフォームから入力すると商品カラーの品番のみ入力されます。 商品カラーと商品サイズの品番を同時にファームから入力は出来ないでしょうか? 現在は10テーブルありますが1つのテーブルにまとめたほうがいのでしょうか?