テーブル設計の縦持ちとは?データベースの縦持ちについて

このQ&Aのポイント
  • テーブル設計の縦持ちについて簡単に説明します。
  • データベースの縦持ちについて詳しく解説します。
  • 縦持ちに関する情報を見つけるのが難しい場合は、ネット検索や参考書を活用しましょう。
回答を見る
  • ベストアンサー

テーブル設計の際の縦持ちについて

今度会社で新しく 業者が開発したWeb上の入力サイトに入力されたデータを開発業者からcsvで1件のデータが30項目程あるものを受取り、それをインポートしてうちの会社で必要な事務項目(会社での計上日など)を追加で入力するものを作るように言われました。 簡単にテーブルについて、簡単に説明すると、 ID    名前        住所         金額   寄付内容      本社との関係 … 1    山田太郎     東京都新宿区   3000   改装費         OB 2    佐藤華子     東京都中央区   5000   野球チーム応援   社員 というようなデータが来ます。 この寄付の内容というものが、 寄付を呼びかけるその時々で(Webで入力させる項目が) 変わるので、その変わった内容をAccessにインポートしても 問題ないような仕組みにするように言われました。 例)2012年の寄付募集時: ロボット開発費のための寄付   電子機器開発費のための寄付     2014年の寄付募集時:  野球部を応援するための寄付  卓球部を応援するための寄付   2016年の寄付募集時:  北海道工場新築のための寄付  山梨工場建て替えのための寄付  この件について、会社の先輩に相談したところ、横持ちにすると、カラム追加する必要が あることは今後明らかなので、そのような場合は縦持ちにすると良い。 とアドバイスをされました。 そこで、「テーブル 設計 縦持ち」 「データベース 縦持ち」 等で検索してみましたが、縦持ち についてわかりやすく説明されているサイトや本を 見つけることができませんでした。 もし縦持ちについて、易しく記載されているHPや本があればお教え頂けないかと思い、質問させて頂きました。 どうぞよろしくお願い致します。

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

例えば次のようなテーブル設計のことです。 年度|識別|費目 ――+――――――――――― 2012|K001|ロボット開発費 2012|K002|電子機器開発費 2014|E001|野球部応援 2014|E002|卓球部応援 2016|S001|北海道工場新築 2016|T001|山梨工場建替 識別コードの形式はどうするのが最適か,御社にとってその他必要な項目はどんなものがあるか,については分かりません。 質問することで客先に迷惑や悪評が及ぶような話ではないのですから,聞くは一時の恥ということで,先輩に対して「縦持ちって何ですか?」と素直に聞いてみるのが良いと思います。

その他の回答 (1)

  • kamoz
  • ベストアンサー率22% (2/9)
回答No.2

データベースの「正規化」 という言葉で検索して みてください。 縦持ちという内容と同じことが説明されています。

関連するQ&A

  • ACCESS2003のテーブル入力について

    いつもこちらでお世話になっております。よろしくお願いいたします。 マイクロソフトアクセス2003にて、No.と項目名という2つのフィールドから成り立つテーブルがあります。 そのテーブルにはあらかじめデータがはいっています。 新規にそのテーブルに追加する項目が出来たとき、新規入力用のフォームを作成しました。 その時のNo.のフィールドなのですが、自動的にもともとあるテーブルの番号に無いものを規定値として表示させておくようにするには、どのようにしたらよいでしょうか? 例) 1、2、3、5があれば、4を 1、2、3、4があれば5を よろしくおねがいします。 もうひとつ質問なのですが、納品書を入力していくデーターを作成しているのですが、納品書のテーブルがあり、リレーションで項目や会社名などを関連テーブルとしています。 あらかじめ会社名や項目名のテーブルに入力されていない新規の会社の納品書を打ち込む場合、納品書テーブル入力フォームに、入力しただけで、項目名のテーブルや会社名のテーブルに追加されていく方法はありますでしょうか?

  • ACCESSでインポートしたレポートに自分のテーブルデータを載せるには

    全く同じフィールド項目のあるACCESSデータがあるのですが、他の人が使っているレポート内容が気に入ったので、 それを使えないかと思っています(その人とフィールド項目は全く同じ)。 で、その人のレポートをインポートしましたが、自分のテーブルデータが当てはまるようにするにはどうすればよいのでしょうか。 どうぞ宜しくお願いします。

  • マクロによりテーブルをインポートする際の処理について

    マクロの動作によりあるテキストファイル(csv)をテーブルにインポートする際に、そのテキストファイルにない取り込んだ日のフィールドを追加してインポートしたいと思っています。 具体的にはテキストデータが 番号 内容 1 本 2 自転車 3 東京 となっていまして、このテキストデータをマクロ動作によりインポートすれば 日付 番号 内容 5/31 1 本 5/31 2 自転車 5/31 3 東京 というテーブルになるというイメージです。 もう一つがマクロによりインポートする際に読み込むファイル名が text_data_20060531.txt となっていましてフォームのボタンを押すだけで自動的に本日の日付からこのファイル名を指定するにはどうしたらいいのでしょう?マクロの中では決めうちでファイル名を指定しなければならないように見えます。 どなたかご存知の方ご教授ください。

  • テーブル間の更新クエリにおいて

    Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m

  • 項目があったりなかったりするテーブル設計について。

    伊藤と申します。 postgreSQL7.2.2を使用して、Webアプリケーションを制作しています。 テーブル設計で迷っているところがあります。 HTMLのフォームのデータを取り込み、データベースに格納する、 と言う事をしたいのですが、クライアントが自由に フォームの内容を変えることができるようになっています。 そこで、変わったパターンが出てきてテーブル設計に困っています。 Radioボタンが3つあるとします。 1番目と2番目がチェックされるときは問題ないのですが、 3番目をチェックしたときにはさらに、 テキストボックスに入力を求められる事があるのです。  下記のような場合が問題になります。 ==================================== Q2 あなたのすきな食べ物は? ○りんご ○みかん ○その他 ↓下のボックスに入力してください  ______________ |______________| ==================================== 以下が現状です。 ■環境 OS:Turbolinux 7 Server DBサーバ:postgreSQL ■テーブル ・質問テーブル ・質問選択肢テーブル ・回答テーブル ■キー 質問テーブルの主キー(質問ID)に対して、 質問選択肢テーブルにある外部キーがリレーションします。 質問選択肢テーブルにはシーケンスもあり(選択肢No)、 質問IDと選択肢Noで主キーとしています。 ■問題 ・例外的な選択肢追加を(ある選択肢に対して並行に)  可能にするには質問選択肢テーブルをどう設計すればいいのか。 ・回答テーブルに通常なら選択された値をレコードに  格納するだけだが、  ひとつ項目が増える事もイレギュラー的に発生するので、  回答テーブルどう設計するか。 以上2点です。 長くなって申し訳ありません。 ご教授よろしくお願い申し上げます。

  • データベースのフィールドそのものを自由に定義できるテーブル設計とは

    はじめまして。 この度、ユーザからの入力をデータベースに保存する複数アンケートフォームを作成しようとしています。 その際、各アンケートフォームごとに入力項目名、入力タイプ好きな数だけ管理側から設定できる仕様です。 このような通常フィールド(列)となる部分の名称やデータタイプを自由に設定できるデータベース設計がうまくいきません。現場ではどのようにしてやられてるのでしょうか? 私が思いつく限りでは ---------------------- アンケートフォームテーブル ・アンケートフォーム番号(PK) ・アンケート名称 ---------------------- 項目雛型テーブル ・項目番号(PK) ・データタイプ ---------------------- 項目実体 ・アンケートフォーム番号(PK) ・項目番号(PK) ・項目名称 ・表示状態 ---------------------- 上記のような構造にした場合、ユーザ毎のアンケートデータを保存するテーブル構造が思いつきません。 作成できる項目数の限度を30に決めて、予め30フィールド、テキスト型のようなものを用意しておくのも狭い利用範囲になる気がしますが・・・ アドバイスをお願いします。

  • マスタテーブル使用時のデータテーブル設計について

    皆様こんにちは、失礼致します。 現在、ASP.NET+SQLServerで業務用帳票アプリの開発を行っています。 DBを使用した開発は初めてで、テーブルの設計手法について 経験者様のご指導を頂きたく、宜しくお願い致します。 まず、マスタテーブルは以下とします。 【顧客マスタテーブル】 ・顧客マスタID ・顧客名 ・顧客名(英語名) 帳票データ入力画面で、顧客マスタ検索ボタンから別画面を起動し、 そこで選択した顧客名を帳票データ入力画面に反映させます。 そして、帳票データ入力画面のデータをデータテーブルへ格納する のですが、その際には顧客名そのものか、マスタIDのどちらを 格納するのが好ましいのでしょうか? 要件としては以下を満たす必要があります。 1.帳票データ入力画面で格納したデータは   別の帳票データ入力画面でも使い回す。 2.帳票印刷時にのみ、顧客名を対応する顧客名(英語名)で   出力する。 3.データテーブルに格納されたデータは後々参照して使い回す。 顧客名で格納しておけば使い回しは楽ですが、2.のケースで 顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも 顧客名(英語名)が一意ではなかった場合に問題が起きます。 マスタIDで格納しておけば、対応する顧客名(英語名)は検索 できますが、マスタを修正した場合には3.で過去データを 参照する時に修正後のマスタ情報が表示されてしまいます。 結論としましては、両方とも格納しておくのが好ましいのでは、 と考えておりますが、メンテナンス性の観点から、データテーブルの カラム数はできるだけ少なくしたいとも考えております。 周囲に経験者がいなくて困っております。 ご指導頂けますと幸いです。 以上、宜しくお願い致します。

  • ACCESSでテーブルの一部だけを更新したい

    Access2000を使用しています。 テーブルの更新方法についてアドバイスをお願いいたします。 Excelの表からインポートとして「テーブルA」を作っています。 Excelからは項目「A、B、C、D」をインポートしていますが、テーブルにインポートしたあとで、項目「E、F、G」を新たに追加作成し、値を手入力しています。 (Excelにはこの項目がないためです) Excelの表は時々更新されるため、その都度上書きとしてインポートしなおす必要があります。 しかしそうすると項目「E、F、G」が消えてしまいます。 項目「E、F、G」の値を残したまま項目「A、B、C、D」を更新するなどということはできるのでしょうか? 代替案でもけっこうですのでどうぞよろしくお願いします。

  • テーブル更新について

    入力テーブル NO A項目 B項目 C項目 D項目 1  SSSS AAAA CCCC EEEEE 2 QQQQ SSSS WWWW FFFF 3 TTTT JJJJ VVVV UUUU 4 ZZZZ YYYY IIII PPPP (新規データ) 検索テーブル NO A項目 C項目 D項目 1  PPPP UUUU LLLL 2 RRRR MMMM VVVV 3 YYYY FFFF AAAA 4 OOOO DDDD WWWW 5 上記のように入力テーブルの新規データを検索テーブルへ追加したいと考えています。 入力テーブルの最終行に新規データが追加されるとして、それを検索テーブルへ追加する場合、 方法として、(1)Access VBAを使う場合と、(2)SQL文を使用する場合とあると思います。 どちらでもいいので、どうすればいいのか、教えていただけないのでしょうか。 よろしくお願いします。

  • テーブルの設計はとりあえず文字列で取り込み?

    テーブルの設計はとりあえず文字列で取り込み? こんにちは。会社の上司にSQLについて教えてもらいました(ACCESS2003)。 上司曰く、とりあえずテーブルの設計はvarcharにしておけば大丈夫。 もし取り込んだ値が数値なら、あとで数値に変換する関数で数値に変換して計算行えばいいよと言われました。 とりあえず、文字列なら必ずインポートできるからテーブルのデータ型は全て文字列型。 というのは正しいのでしょうか?様々な型があるのに、すべて文字列型にしてもいいのかなと素朴な疑問が生まれました。 よろしくお願いします。