皆様こんにちは、失礼致します。
現在、ASP.NET+SQLServerで業務用帳票アプリの開発を行っています。
DBを使用した開発は初めてで、テーブルの設計手法について
経験者様のご指導を頂きたく、宜しくお願い致します。
まず、マスタテーブルは以下とします。
【顧客マスタテーブル】
・顧客マスタID
・顧客名
・顧客名(英語名)
帳票データ入力画面で、顧客マスタ検索ボタンから別画面を起動し、
そこで選択した顧客名を帳票データ入力画面に反映させます。
そして、帳票データ入力画面のデータをデータテーブルへ格納する
のですが、その際には顧客名そのものか、マスタIDのどちらを
格納するのが好ましいのでしょうか?
要件としては以下を満たす必要があります。
1.帳票データ入力画面で格納したデータは
別の帳票データ入力画面でも使い回す。
2.帳票印刷時にのみ、顧客名を対応する顧客名(英語名)で
出力する。
3.データテーブルに格納されたデータは後々参照して使い回す。
顧客名で格納しておけば使い回しは楽ですが、2.のケースで
顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも
顧客名(英語名)が一意ではなかった場合に問題が起きます。
マスタIDで格納しておけば、対応する顧客名(英語名)は検索
できますが、マスタを修正した場合には3.で過去データを
参照する時に修正後のマスタ情報が表示されてしまいます。
結論としましては、両方とも格納しておくのが好ましいのでは、
と考えておりますが、メンテナンス性の観点から、データテーブルの
カラム数はできるだけ少なくしたいとも考えております。
周囲に経験者がいなくて困っております。
ご指導頂けますと幸いです。
以上、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
データテーブルへ格納するのは(一般的には)顧客IDでしょうね(一意ですよね)。
>顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも
>顧客名(英語名)が一意ではなかった場合に問題が起きます。
意味がよくわからないのですが
>マスタを修正した場合には3.で過去データを
>参照する時に修正後のマスタ情報が表示されてしまいます。
顧客マスタの履歴管理をおこなうのであれば、
・顧客ID(PK)
・適用開始年月日(PK)
・適用終了年月日
・顧客名
・顧客名(英語名)
dda167様、ご回答頂きましてありがとうございました。
マスタIDを格納するのが一般的なんですね。
マスタに適用開始、終了年月日フィールドを
加えて履歴管理を行うという手法までご教示
頂きまして、勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- その他(データベース) accessについて 2 2022/05/31 16:58
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- その他(開発・運用・管理) マイクロソフト製品のライセンス販売で困ってます 1 2022/06/30 19:52
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access IF文でテーブルに存在し...
-
Access VBAでクエリーのレコー...
-
ワードで保存するファイル名の...
-
シングルクォーテーションとダ...
-
顧客IDを入力すると顧客名や住...
-
ACCESSとVBAとレコード
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
BIOSでAHCIに設定したいが、項...
-
Accessでテーブル名やクエリ名...
-
テーブルの存在チェックについて
-
Access テキスト型に対する指定...
-
変数が選択リストにありません
-
Accessでコードを入れると名前...
-
Accessレコードの追加や変更が...
-
Accessのクエリでデータの入力...
-
Oracle 2つのDate型の値の差を...
-
2つのテーブルを比較して一致し...
-
importについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
シングルクォーテーションとダ...
-
Access フォームのデータがテー...
-
Access IF文でテーブルに存在し...
-
データベースの1要素に複数デー...
-
ACCESS で マクロの中でフィ...
-
ACCESS2003 Aアクロバットを介...
-
Access 既に開いているフォー...
-
顧客IDを入力すると顧客名や住...
-
ワードでの単純作業の効率化に...
-
Access クエリ このレコードセ...
-
テーブル1 2 3 の結合
-
VBAで検索条件式の書き方教えて...
-
ワードで保存するファイル名の...
-
Accessデータベースで行と列を...
-
access フォーム間で情報が引...
-
文字化け、記号の含まれるフィ...
-
別のDBからテーブルをコピーす...
-
Access レコードロックについて...
-
ACCESS 顧客データ 購入履歴...
おすすめ情報