- 締切済み
リレーションシップの書き方について
今更ながら、リレーションシップの 記述について、悩んでいます。 例を上げると、まず「受注」というテーブルが あるとします。 この受注というデータは、あるタイミングで 「売上」というデータを作成するための元ネタになります。 以降、受注と売上を同時に見に行くようなことはないと 仮定した場合、「受注」と「売上」にはリレーションを 記述する必要はないのでしょうか? 自分としては、「売上」の元データであるだけの「受注」と 売上は関連がないと思うのでリレーションは必要ないと思うのですが・・・
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
運用上、売上は受注にもとづくものなので、必ず ひもづけて管理した方がよいでしょう。 売上を立てたものにたいして、クライアントから 「そんなものを発注した記憶がない」とされた場合 「こういう受注に基づいた売上です」と答えられますから。 あと在庫がたりないときとかは一度で売上があがらない ケースもあるでしょう。 その際、発注に対して売上をひもづけておけば、 ある10本の受注にたいして9本売上がたっていると 1本追加して売りあげる必要があるという指標が 残ります。
- O_cyan
- ベストアンサー率59% (745/1260)
>受注と売上を同時に見に行くようなことはないと仮定した場合「受注」と「売上」にはリレーションを記述する必要はないのでしょうか? 通常は[受注]=[売上]と捉えるのではないでしょうか。 受注テーブルと売上テーブルが別々にあり売上データを作成時にしか受注テーブルを参照しないで後はまったく使用しないとすれば要らないと思います。 しかし例えば売上残の抽出は?未売上の受注データを抽出する際はどのようにするのかとか・・。受注テーブルのキーと売上テーブルのキー(受注キーがあればそのキー)で結合させれば簡単に抽出できるのでは。 売上データ作成時に受注レコードに売上済みのフラグを立てればそのフラグを参照すればすぐできますが無い場合は受注テーブルと売上テーブルをキーで結合させる必要があるのではないでしょうか。 などなど 処理の内容により変わっては来ますが。 その辺はどうでしょうか。
私の意見ですが、 受注が、売上の元ネタになったということで、関係は成立します。 なので、リレーションはあると思います。 また、リレーションが必要かどうかは、アプリケーションによって変わってくると思います。 どの受注からの売上なのか知る必要があるならリレーションは必要ですし、 全く別物として扱うのならなくてもいいと思います。