- ベストアンサー
リレーションシップを組むメリットはなんでしょう?
リレーションシップを組む必要が感じられません。 ・重複データの確認、 ・テーブルにデータがあるかの確認 をVBAで行なってデータを追加しているのですが この場合リレーションシップを組む必要はありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問の意図が分かりません。 リレーションシップは主に親テーブルと子テーブルを結ぶ時に使用する事が多いですが、どの様なテーブル構造を想定しているのでしょうか? それが分からないと必要があるのかないのか判断しようがありません。 質問の内容だとそもそもテーブルが一つなのか複数なのかすら分かりません。一つのテーブルでリレーションを張ることはあり得ません。
その他の回答 (3)
- Gletscher
- ベストアンサー率23% (1525/6504)
他の回答者のコメントにあるように、リレーションシップの意味を取り違えていませんか? 大きなテーブルの場合、1つのテーブルに全てのフィールドを作るとメンテナンス性が悪いし、テーブルが重くなります。 また、内容によっては他のテーブルから参照されるものもありますね? ですから、テーブルを分けた方が、何かと都合が良い場合に、分けたテーブルの関連性を持たせるのがリレーションシップです。 たとえば、販売データのようなものがあったとして、管理したい項目には、販売日、商品名、単価、販売数量、ユーザ名・・・などがありますね? しかし、その同じテーブルに、顧客名、顧客住所、顧客電話番号なども一緒に入れますか? そうだとすれば、同じ顧客に売っても、毎回それらを入力するのは大変ですよね? さらに、販売した商品の、仕入先、仕入れ単価、仕入れ日、仕入れロット数、なども同じテーブルで管理しますか? 1品販売のたびにそれらを全て入力するのは大変なことだし、やってられません。 そこで、販売台帳には、販売日、商品名、単価、販売数量、ユーザ名などだけにし、さらに、商品名やユーザ名は実名ではなくコードにして、別に商品マスタや顧客マスタを持って管理しますよね? その時、販売台帳と商品マスタや顧客マスタはりレーションをとらないとデータの関連性が取れませんね。 つり、絶対にリレーションシップが必要になります。 全てのデーターをひとつの大きなテーブルに押し込んでしまい、毎回それをメンテナンスするのであればリレーションは必要ないですが、マスタ・トランザクション処理などでも必須になります。
お礼
「マスタ・トランザクション処理」について調べてみます。ありがとうございます。
- kurodai2
- ベストアンサー率38% (77/202)
>この場合リレーションシップを組む必要はありますか? この場合と言うのが、曖昧ですが >リレーションシップを組む必要が感じられません。 こう感じられるのは解ります。 自分でデータの整合性が取れるように作り込めば 必要ないですよね。 逆に処理によっては、邪魔な場合もあります。 自分が作成する場合は、手抜きの場合以外は リレーションは 設定していません。 連鎖更新とか連鎖削除とか、ACCESSまかせで削除や 更新をする事もそうないですし、解りにくいメッセージが出て 問い合わせがあるより、事前にVBAでチェックして 必要な処理 必要なメッセージを出すようにした方が確実と考えています。 ご自身でデータに矛盾が起きないように作りこめるのであれば リレーションは必須ではないと思います
お礼
なるほど!私の求めていた答えです!ありがとうございます。
>リレーションシップを組むメリットはなんでしょう? 連鎖更新とか連鎖削除とか、便利な場合がありますよ。 >リレーションシップを組む必要が感じられません。 別に、使わなければならない、ということではないと思います。 必要なければ別に使わなくてよいのでは? >この場合リレーションシップを組む必要はありますか? さぁ。No1の方と同じ話になりますが、少なくともデータベースの構造を見てみないことにはなんともいえませんねぇ。 それに、重複レコードがないとか、テーブルが空でないというのは、リレーションシップとはあまり関係ないような気がするのですが。
お礼
連鎖更新とか連鎖削除は便利ですね! ありがとうございます。
お礼
ありがとうございます。 テーブルは複数ありますが 重複データのチェックなどはvbaで行なっているためわざわざリレーションシップを組む必要はあるのかな?と思い質問してみました。