- 締切済み
アクセスの考え方についてアドバイスお願いします。
観た映画をアクセスで管理したいのですが、アクセスは既存のフォームに入力した 経験しかないのでネットで勉強しながら作っています。 そこでアクセスの考え方についてアドバイスお願いします。 入れたいデータはタイトル、原題、鑑賞日、製作年、配給会社、監督、出演者などです。 ひとまず、出演者・監督(人名)以外のデータを入れるテーブル(映画のタイトルごとにオートナンバーで 主キー設定)と、俳優&監督(人名)を入れるテーブルを作ってみました。 ・・・が、入力フォームを作る時にその2つをどう繋げてよいのかわかりません。 (各映画、出演者が複数いるわけですがどのようにこの2つをつなげたら良いのでしょうか。) そもそもテーブルを分ける必要がないのでしょうか?? アクセスの勉強を兼ねて作っているので、フリーソフト等で管理することは考えていません。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yoko3333
- ベストアンサー率35% (47/134)
#1の方のおっしゃるとおりで良いのではないかと思います。 #2の方のおっしゃる『いわゆる関連性が「多:多」の状態』というのは、この場合は あまり問題ないのでは?と思うのですが・・・。 (批判しているわけではありません。いろいろ考え方はあると思うので・・・。) 私なら、こういう作りにします。 テーブル名やフィールド名は適当です(^_^;) また、主要なフィールドしか書いていません。 テーブル名「映画タイトル」 映画番号(数値)(主キー) :オートナンバーまたは普通の数値型で連番をふっていく タイトル(文字列) 原題(文字列) テーブル名「名簿マスタ」 :監督や出演者の一覧を事前に登録しておく 名簿番号(数値)(主キー) :オートナンバーまたは普通の数値型で連番をふっていく 氏名(文字列) :監督や出演者の氏名 テーブル名「出演区分」 :「監督」「脚本」「主演」などの区分 出演区分(文字列) テーブル名「映画出演者」 映画番号(数値)(主キー) :対応する「映画タイトル」のデータと同じ番号が入るように 名簿番号(数値)(主キー) :「名簿マスタ」テーブルから、コンボボックス等で選択できるようにする 出演区分(文字列) :「出演区分」テーブルから、コンボボックス等で選択できるようにする 画面やレポートでずらっと表示したい場合は、クエリーで 「映画タイトル」と「映画出演者」の「映画番号」を結合 「映画出演者」と「名簿マスタ」の「名簿番号」を結合 とやれば良いです。 この結合はリレーションシップでやっておいてもよいでしょう。 ただ、監督とか、1映画につき1人しかいない項目で、しかも他の出演者などと 一緒くたに検索したりする必要がなさそうなスタッフであれば、「映画タイトル」 テーブルの方に持ってしまってもよいかもしれませんね。
- acetaldehyde
- ベストアンサー率14% (10/71)
>(各映画、出演者が複数いるわけですがどのようにこの2つをつなげたら良いのでしょうか。) そもそもテーブルを分ける必要がないのでしょうか? 難しいところですね。 確かに1つの映画に複数の出演者が存在しますので、出演者のテーブルを分ける意味も有りますし分けたいところですが、また一方でそれぞれの出演者が複数の映画に出演しています。 →いわゆる関連性が「多:多」の状態です。 解決策としては、映画テーブルの1つ1つのレコードに5つ位の項目を作成し、それら全てについてルックアップで参照先を出演者テーブルにする事でしょうか? この場合当然のことながら、1つの映画に登録出来る出演者数は5人になります。
- denbee
- ベストアンサー率28% (192/671)
タイトルテーブルでユニークなレコードにして主キーを作る考えは良いと思います。 人名テーブルは、1つの映画に出演する人が複数いるのでタイトルテーブルに入れるとユニークに ならなくなりますから、これを分離するというのも問題ありません。 あとはタイトルテーブルと人名テーブルを関連付けを行う必要がありますので、 人名テーブルに、タイトルテーブルで割り振ったナンバーか、またはタイトル名の項目を追加して 2つのテーブルを関連付け可能にすればよろしいかと思います。