• 締切済み

アクセスの考え方についてアドバイスお願いします。

観た映画をアクセスで管理したいのですが、アクセスは既存のフォームに入力した 経験しかないのでネットで勉強しながら作っています。 そこでアクセスの考え方についてアドバイスお願いします。 入れたいデータはタイトル、原題、鑑賞日、製作年、配給会社、監督、出演者などです。 ひとまず、出演者・監督(人名)以外のデータを入れるテーブル(映画のタイトルごとにオートナンバーで 主キー設定)と、俳優&監督(人名)を入れるテーブルを作ってみました。 ・・・が、入力フォームを作る時にその2つをどう繋げてよいのかわかりません。 (各映画、出演者が複数いるわけですがどのようにこの2つをつなげたら良いのでしょうか。) そもそもテーブルを分ける必要がないのでしょうか?? アクセスの勉強を兼ねて作っているので、フリーソフト等で管理することは考えていません。 よろしくお願いいたします。

みんなの回答

  • yoko3333
  • ベストアンサー率35% (47/134)
回答No.3

#1の方のおっしゃるとおりで良いのではないかと思います。 #2の方のおっしゃる『いわゆる関連性が「多:多」の状態』というのは、この場合は あまり問題ないのでは?と思うのですが・・・。 (批判しているわけではありません。いろいろ考え方はあると思うので・・・。) 私なら、こういう作りにします。 テーブル名やフィールド名は適当です(^_^;) また、主要なフィールドしか書いていません。 テーブル名「映画タイトル」  映画番号(数値)(主キー)  :オートナンバーまたは普通の数値型で連番をふっていく  タイトル(文字列)  原題(文字列) テーブル名「名簿マスタ」    :監督や出演者の一覧を事前に登録しておく  名簿番号(数値)(主キー)  :オートナンバーまたは普通の数値型で連番をふっていく  氏名(文字列)          :監督や出演者の氏名 テーブル名「出演区分」     :「監督」「脚本」「主演」などの区分  出演区分(文字列) テーブル名「映画出演者」  映画番号(数値)(主キー)  :対応する「映画タイトル」のデータと同じ番号が入るように  名簿番号(数値)(主キー)  :「名簿マスタ」テーブルから、コンボボックス等で選択できるようにする  出演区分(文字列)      :「出演区分」テーブルから、コンボボックス等で選択できるようにする 画面やレポートでずらっと表示したい場合は、クエリーで  「映画タイトル」と「映画出演者」の「映画番号」を結合  「映画出演者」と「名簿マスタ」の「名簿番号」を結合 とやれば良いです。 この結合はリレーションシップでやっておいてもよいでしょう。 ただ、監督とか、1映画につき1人しかいない項目で、しかも他の出演者などと 一緒くたに検索したりする必要がなさそうなスタッフであれば、「映画タイトル」 テーブルの方に持ってしまってもよいかもしれませんね。

回答No.2

>(各映画、出演者が複数いるわけですがどのようにこの2つをつなげたら良いのでしょうか。) そもそもテーブルを分ける必要がないのでしょうか? 難しいところですね。 確かに1つの映画に複数の出演者が存在しますので、出演者のテーブルを分ける意味も有りますし分けたいところですが、また一方でそれぞれの出演者が複数の映画に出演しています。  →いわゆる関連性が「多:多」の状態です。 解決策としては、映画テーブルの1つ1つのレコードに5つ位の項目を作成し、それら全てについてルックアップで参照先を出演者テーブルにする事でしょうか? この場合当然のことながら、1つの映画に登録出来る出演者数は5人になります。

  • denbee
  • ベストアンサー率28% (192/671)
回答No.1

タイトルテーブルでユニークなレコードにして主キーを作る考えは良いと思います。 人名テーブルは、1つの映画に出演する人が複数いるのでタイトルテーブルに入れるとユニークに ならなくなりますから、これを分離するというのも問題ありません。 あとはタイトルテーブルと人名テーブルを関連付けを行う必要がありますので、 人名テーブルに、タイトルテーブルで割り振ったナンバーか、またはタイトル名の項目を追加して 2つのテーブルを関連付け可能にすればよろしいかと思います。

関連するQ&A