-PR-
解決
済み

多数のレターの購読管理

  • 暇なときにでも
  • 質問No.95298
  • 閲覧数30
  • ありがとう数12
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 47% (767/1609)

たとえば、
山田太郎さんという人が、レターA、レターB、レターEを購読
山田花子さんという人が、レターC、レターFを購読
田中太郎さんという人が、レターAを購読
などの複数のレターを購読するような場合、それをアクセスのデータとして管理する場合、

氏名、購読紙
山田太郎 A,B,E
山田花子 C,F
田中太郎 A

というようなテーブルを作り、その上で各種のフォームなどに組合わせていくものなのでしょうか?

それとも、
氏名 購読紙
山田太郎 A
山田太郎 B
山田太郎 E
山田花子 C
・・・・
のようにしていくべきなのでしょうか?

プログラミング初心者の質問です。

#質問の意図は、どっちが、(あるいは別の方法)扱いやすいのかというようなことを知りたい。これから作業するにあたって、後悔しなくて済むよう・・。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 41% (324/772)

リレーショナルデータベースとはなんぞや。
ということを知っていれば、

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

のような形式を使用したほうが「楽」です。
ただし、購読紙が増えると、プログラムの
書き直しになります。


あとは、あなたの気持ちしだいです。
データベース/プログラミングを学ぶ気があるなら、
前者をお薦めします。

多分後者だと、購読紙が増えるたびに
後悔すると思います。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 40% (900/2202)

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

以下、購読=1、非購読=0としますと、この例ならば

山田太郎,1,1,0,0,1
山田花子,0,0,1,0,1
田中太郎,1,0,0,0,0

…とするわけですね。
レターごと、メンバーごとの購読数も簡単に計算できる
ようになります。


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ