- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:注文した商品名をマスターで作るか)
注文時の商品データ管理方法について悩んでいます
このQ&Aのポイント
- 注文した商品名をマスターで作るか、Access 2013 vbaで商品データを管理するテーブルを作るか悩んでいます。
- 注文履歴の画面には、注文内容の入力画面Aで入力した商品IDを表示させる予定です。
- 商品管理テーブルのレコードが勝手に削除される可能性があるため、商品名や品番などは注文履歴のフィールドに保存する方が良いか迷っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
入力画面(フォーム)とテーブル設計は別に考えるようにしましょう。 通常は、注文履歴のテーブルに、商品ID(外部キー)以外の商品データ(商品名や品番)は保存すべきではないです。 履歴入力画面からは、商品管理テーブルは参照だけで変更できないような設計にすれば問題ないので。 また、リレーションシップで「参照整合性」にチェックを入れておけば、履歴テーブルのデータと紐づいているレコードをマスターから削除しようとすると警告が出て削除できないようになります。 ただし、例外として、例えば「単価」が頻繁に変わるように場合は、単価を注文履歴の方にも格納するということはあります。 注文履歴入力画面(フォーム)での商品名や品番の参照は、コンボボックスを利用すると簡単にでき、また、入力しやすいものになります。 ■T'sWare Access Tips #360 ~コンボの2列目をテキストボックスに表示する方法(コントロールソース版)~ http://www.tsware.jp/tips/tips_360.htm
お礼
ご回答ありがとうございました。 このコンボボックスの値を簡単に参照できるようにすれば、とても便利ですね。 早速利用させて頂きたいと思います。 あと、単価はその時〃で変わりますので、注文履歴テーブルに単価というフィールドを作り、そこにも保存していきたいと思います。しかし、仰るとおり、その他の項目、品番とか、そのようなフィールドは参照するというやり方にします。