• ベストアンサー

多数のレターの購読管理

たとえば、 山田太郎さんという人が、レターA、レターB、レターEを購読 山田花子さんという人が、レターC、レターFを購読 田中太郎さんという人が、レターAを購読 などの複数のレターを購読するような場合、それをアクセスのデータとして管理する場合、 氏名、購読紙 山田太郎 A,B,E 山田花子 C,F 田中太郎 A というようなテーブルを作り、その上で各種のフォームなどに組合わせていくものなのでしょうか? それとも、 氏名 購読紙 山田太郎 A 山田太郎 B 山田太郎 E 山田花子 C ・・・・ のようにしていくべきなのでしょうか? プログラミング初心者の質問です。 #質問の意図は、どっちが、(あるいは別の方法)扱いやすいのかというようなことを知りたい。これから作業するにあたって、後悔しなくて済むよう・・。

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.2

リレーショナルデータベースとはなんぞや。 ということを知っていれば、 Table_A(ユーザ情報) user_is,user_name 1, 山田太郎 2, 山田花子 3, 田中太郎 Table_B(購読紙情報) letter_id,letter_name 1, レターA 2, レターB 3, レターC 4, レターD 5, レターE 6, レターF Table_C(購読状況情報) user_id,letter_id 1, 1 1, 2 1, 5 2, 3 2, 6 3, 1 といった構成をとるのが、模範解答になります。 これをデータベースの正規化と言います、 この形式だと、購読紙がいくつに増えても、同一 プログラムで対処可能です。ですが、この形だと、 山田太郎 A, B, E 山田花子 C, F 田中太郎 A の形の表を作るのに若干手間がかかります。 (クロス集計クエリを使用します) 従って、購読紙が一定数で今後増えないのあれば 山田太郎,1,1,0,0,1 山田花子,0,0,1,0,1 田中太郎,1,0,0,0,0 のような形式を使用したほうが「楽」です。 ただし、購読紙が増えると、プログラムの 書き直しになります。 あとは、あなたの気持ちしだいです。 データベース/プログラミングを学ぶ気があるなら、 前者をお薦めします。 多分後者だと、購読紙が増えるたびに 後悔すると思います。

その他の回答 (1)

  • crimson
  • ベストアンサー率40% (900/2202)
回答No.1

むしろ、全てのレターについて「購読/非購読」を明示 するような形式にした方が、データ量は増えますが管理 は容易になると思います。 以下、購読=1、非購読=0としますと、この例ならば 山田太郎,1,1,0,0,1 山田花子,0,0,1,0,1 田中太郎,1,0,0,0,0 …とするわけですね。 レターごと、メンバーごとの購読数も簡単に計算できる ようになります。

関連するQ&A

  • アクセス:文字レコードの集計をクエリで次のようなことを。

    こんにちは。アクセス初心者です。よろしくお願いします。 テーブル、もしくはクエリで次のようなものがあるとします。 id  氏名       A     B     C    D  ・・・ 28 山田 太郎  ○○ 88 海川 花子      △△ 28 山田 太郎          □□ 28 山田 太郎             △□ 88 海川 花子 ×× を id 氏名      A    B    C  D ・・・ 28 山田 太郎  ○○      □□ △□ 88 海川 花子  ××  △△ のようにまとめるクエリでの加工は可能でしょうか? 前提として、1レコードにid、氏名のほかは一つのフィールドを選んで入力することとしています。 よろしくお願いします。

  • 【エクセル】リストの照合について教えてください!!

    sheet1に、下記の様に600件の氏名が書いてあります。 A      B 1     山田太郎  2     鈴木花子 ・・・ 600   佐藤次郎 sheet2に、地域と氏名がずらっと書いてあります。 A      B      C     D    E 東京都   神奈川県   埼玉県   千葉県  茨城県 山田太郎 鈴木太郎 山田花子 佐藤次郎 ・・・ このsheet2の地域を、sheet1のC列に下記の様に入れたいのですが、 どの様に行ったら良いでしょうか? みなさんのお知恵をください!!宜しくお願い致します。 A      B      C 1     山田太郎   東京都 2     鈴木花子   神奈川県 ・・・ 600   佐藤次郎   埼玉県

  • 複数条件で数値を取り出す関数を教えて下さい。

    皆様のお知恵を貸して下さい。win7 Excel2010使用です。 ファイル1が A   B    C     D   E No.  氏名   月    タイプ 金額 1234 田中一郎 201310 1201 1234 田中一郎 201401 1201 1234 田中一郎 201401 1202 1237 山田太郎 201311 1201 1237 山田太郎 201312 1203 ファイル2が A   B     C    D     E    F          1201  1201   1201  1201          201310 201311 201312 201401 1234 田中一郎 10,000 15,000  20,000 12,000 1237 山田太郎 25,000 30,000  8,000  11,000 となっていて、月が201310~201406まで、 タイプが1201~1205まででタイプ毎に横に記載されています。(ファイル2) データ数は1000件程です。 ファイル1のE列へファイル2からNO.、月、タイプ全て一致する数値(10,000等)を抽出し表示したいです。 IFやSUMPRODUCT等で出来るかな?とやってみたのですが、私の知識不足で上手く行きません。 宜しくお願いいたします、

  • ExcelVBA 2列ずつ取り出し1列に

    お世話になります。 Excelで、あるデータを整理せねばならないのですが、 A列にID番号、B列に人名、 C列にID番号、D列に人名、というようなデータがあり このような状態です。 0001 山田花子      0002 田中太郎 これをA列に縦1列、つまりこのような状態にしたいのです。 0001  山田花子 0002 田中太郎 量が多くて、手で処理できないので、VBAでやりたいのですが、 この場合どのようなコードになるでしょうか。 教えていただければ幸いです。

  • エクセル 2列に並べた氏名のチェック

        A列       B列      C列 1 山田 太郎   山田 太郎   2 山田 花子   吉本 喜劇 3 吉本 喜劇   挟間 寛餅 4 挟間 寛餅   池野 めだ シート(1)にシート(2)からコピーしてきた氏名をB列に貼り付け、 AとBの氏名が同じかどうかC列に結果を出して確認したい。 C列に =IF(A1=B1,"○","×")と入れてみても 見た目は同じ「山田 太郎」でも×と出てしまいます。 (1)何が間違って「×」と表示されるのか? (2)C列に結果を出す方法は? わかりづらい説明かもしれませんが、よろしくお願いします。

  • Excelで頭数を算出する関数?

    こんにちは。 C列3行目から20行目に氏名があり、D列には個数があります。氏名欄には同一人物も載っているので、メンバーの人数を知るにはどの関数がありますか。 例えば3行目から6行目まではメンバーが3人という結果が出るようにしたいのです。 3 山田太郎 3個 4 佐藤花子 5個 5 田中次郎 6個 6 山田太郎 2個 メンバーは相当の数なので誰が何個売ったかは問題にしません。 宜しくお願いします。

  • 離婚後の戸籍移動について

    山田太郎さんと田中花子さんが結婚し山田夫婦になりました。 A男B子の二人の子供が生まれました。 そして、離婚となったのですが、離婚後花子さんは子供のために山田姓で新たに戸籍を作る予定です。 子供も花子さんの戸籍に入れるつもりですが、父親である太郎さんと、A男B子の関係について質問です。 花子さん戸籍に入ることにより、太郎さんからA男B子への遺産相続に不利はありますか? その他、デメリットはありますでしょうか? 現在、A男18歳大学生B子15歳中学生です。

  • Excelの作業で困っています。

    エクセルで、データをコード管理しているのですが、下記(山田太郎と田中花子)のように、同じ人でコード(C1)を2つ所有している場合があるので、重複しているのデータを探し出し、そのデータを削除する作業をしているのですが、5000件以上のデータがあるものですから、相当時間がかかってしまいます。何か関数とか使って処理する方法がないか教えてください。ちなみに今は、データの並び替えをして1件ずつ削除しています。     C1    C2       C3 R1  100  山田 太郎  ヤマダ タロウ R2  200  田中 花子  タナカ ハナコ R3  105  山田 太郎  ヤマダ タロウ R4  300  鈴木 次郎  スズキ ジロウ R5  250  田中 花子  タナカ ハナコ  

  • エクセルの質問です

    エクセルの質問です。   A   B   C    D    E    F 1         日付  A車  B車  C車 1         7/1   山田      太郎 2         7/2       太郎 3         7/3            花子 4 A車⇒ ■■ 5 B車⇒ ●● 6 C車⇒ ▼▼ 上記の表があります。 B4,B5,B6の各セルに A車、B車、C車の最終使用日付を自動で入れるようにしたいのですが可能でしょうか? D1:F3に入る名前はランダムになります。 ■■⇒にはD列の最終使用日 ●●⇒にはE列の最終使用日 ▼▼⇒にはF列の最終使用日 が入るようにしたいのです。 出来れば関数のみで出来ればと思ってるのですがもしマクロを使うならそれでもと思っています。 下手な質問ですがよろしくお願いします。

  • SQLのテーブル結合

    SQLのSELECTについて質問です。 テーブルA、B、Cから情報を取得し、下記の画面イメージを表示させたいのですが、 どのようにテーブルを結合すればよいか判りません。 どなたかご教示ください・・・。よろしくお願いします。 #テーブルCから組名を取得するような処理は画面表示のロジックで行います。 #テーブルA、Bの結合についてのみ、教えていただきたいです。 条件 ・氏名と、所属情報の○×を表示したい ・DISTINCT等、重たい処理は避けたい 画面イメージ |氏名  |赤組|白組|青組| ------------------------------ |山田太郎|○ |× |× | |山田花子|× |○ |○ | テーブルA |個人ID|氏名  | -------------------- |000001|山田太郎| |000002|山田花子| テーブルB |個人ID|組コード| -------------------- |000001|1110  | |000002|1111  | |000002|1112  | テーブルC |組コード|組名| ------------------ |1110  |赤組| |1111  |白組| |1112  |青組|

専門家に質問してみよう