Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1422 / 2272 ツリー ←次へ | 前へ→

【7232】業務システムにおけるリレーションシップ設定 M.H 06/2/5(日) 10:43 質問[未読]
【7235】Re:業務システムにおけるリレーションシッ... 小僧 06/2/6(月) 9:54 回答[未読]
【7239】Re:リレーションにこだわる必要はない たん 06/2/6(月) 12:25 回答[未読]
【7244】Re:リレーションにこだわる必要はない M.H 06/2/6(月) 22:59 お礼[未読]

【7232】業務システムにおけるリレーションシップ...
質問  M.H  - 06/2/5(日) 10:43 -

引用なし
パスワード
   はじめまして。最近まで全く異なる言語でシステム開発していた者です。
Accessはかなり初心者ですので、よろしくお願いいたします。

Accessで企業システムなどを構築する場合、本当に全テーブルの
関係する項目全てをリレーションシップで結んでいく必要があるので
しょうか?

例えば、テーブル数が100を超えることも珍しくありません。
また、顧客マスタの郵便番号と郵便番号マスタ、顧客マスタの顧客区分
と顧客区分マスタなど・・・それらを全て結ぶと、すざまじい状態に
なります。

個人的には、売上ファイルと売上明細ファイルなどの、親子関係の
テーブルにだけリレーションを張れば良いと思いますが・・・

みなさんはどうされてますか?

【7235】Re:業務システムにおけるリレーションシッ...
回答  小僧  - 06/2/6(月) 9:54 -

引用なし
パスワード
   ▼M.H さん:
おはようございます。

>本当に全テーブルの関係する項目全てを
>リレーションシップで結んでいく必要があるのでしょうか?

システムを構築する方がどこで苦労するか、という点が関わってくると思われます。

初めにテーブル同士の相関関係をリレーションシップで固定しておけば
クエリを作る際やレコードを削除する際などに制約ができ、
決まった制約の中でしか作業ができなくなります。


>例えば、テーブル数が100を超えることも珍しくありません。

という事なのですが、テーブルの相関関係を全て把握している方が
システムを構築されるのでしょうか。

例えば顧客情報テーブルからある顧客番号を削除する処理の際、
その番号に関連づけられた全ての情報を削除しなければならないのに、
削除処理を構築する方の考慮不足によって所々に使わないデータが
ゴミとして残ってしまう事も考えられます。


>みなさんはどうされてますか?

当方が使っている MDB はせいぜい 20 個くらいしかテーブルがないので
リレーションシップは設定しておりません。

更新処理、削除処理等が発生する際に他テーブルとの整合性を意識して
処理を行うような作りにしております。

【7239】Re:リレーションにこだわる必要はない
回答  たん  - 06/2/6(月) 12:25 -

引用なし
パスワード
   >>本当に全テーブルの関係する項目全てを
>>リレーションシップで結んでいく必要があるのでしょうか?

リレーションシップありきを前提として考えるから、そういう変な考えになると
思われます。

システムを作る上で大事なのは、テーブル構成であり、リレーションシップでは
ありません。

クエリを繋げたり、VBAでSQL文を発行したりというように作っていくなかで、
「このテーブルとこのテーブルは1組にした方が全体としていいな」とか思った
場合、リレーションを組むという形にすべきです。

リレーションはあくまで手法・手段の一つであり、必須ではありません。

ですから、小僧さんのように
> リレーションシップは設定しておりません。

設定しなくても、なんら問題は生じないかと。

【7244】Re:リレーションにこだわる必要はない
お礼  M.H  - 06/2/6(月) 22:59 -

引用なし
パスワード
   私たち初心者は、どうもハウツー物の書籍から入りがちで、
その中の章で「リレーションシップを設定しましょう」と
書いてあるので、設定しないと動かないものかと・・・

皆様方、参考になりました。

1422 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free