hatena
hatena
2024/07/24 (水) 16:50:01
T_履歴というテーブルに、「機種_A」から「機種_Z」までの26種類のフィールドがあるとします。
発想がデータベース的ではないですね。
データベースではデータを横方向に展開する(フィールドが増える)ような設計はしません。
このような設計ではデータベースとして使い物になりません。
そのような設計にしたいのならエクセルで作成することをお勧めします。
提示されている情報だけではテーブルデータの全体像が分かりませんので、具体的にどのようなテーブル設計にすべきかは提示できません。
とりあえず、「テーブル 正規化」をキーワードにWEB検索してみて、データベースの基本を学習されることをお勧めします。
通報 ...
機種マスタ
こんな感じのマスターテーブルを作って、T_履歴には機種フィールドにマスタの機種IDをいれればいいのでしょうか?でもそれだと機種を複数選択できません。
今のT_履歴のテーブル構成は、詳細省いてますがこんな感じです。
①T_入力という上記フィールド(受注№以外)を持つテーブルをレコードソースにした、F_入力というフォームで入力を行う(T_履歴には登録ボタンを押して、確定した情報しかレコードして残したくないため)
②F_入力の登録ボタンを押すと、T_入力の内容を追加クエリでT_履歴に追加(この際に受注№を取得)
③F_前回受注№入力というフォームのtxb_受注№(非連結)というテキストボックスに受注№を入力して反映ボタンを押すと、追加クエリでF_入力にその受注№のレコードを追加し、前回入力した内容がF_入力に反映された状態で入力を開始できる
以上のようなことをやりたいのです。
フィールドを横並びにしておけば、追加クエリとかが少なくて済むかなと思ってこのようなテーブルにしました。
きちんと正規化するとT_履歴_機種、T_履歴_加工とかのテーブルも作らないといけないですよね?
正規化調べましたが、T_入力をどうしたらいいかわかりません。
ここからどのようにすればよいでしょうか。