※ ChatGPTを利用し、要約された質問です(原文:クエリー列選択の基準)
クエリー列選択の基準と更新クエリの列選択について考える
このQ&Aのポイント
クエリー列選択の基準として、顧客コード、顧客名、商品名、数を表示することができます。
更新クエリを作成する場合、顧客表の列を使用する場合と注文表の列を使用する場合があります。
更新クエリの列の選択は、更新エラーなどを考慮して適切な列を選択する必要があります。
顧客表
(顧客コード 顧客名)
注文表
(顧客コード 商品名 数)
の表から 売り上げクエリー(ビュー)を作成しようと考えています。
(注文表に、ON UPDATE CASCADE設定済み)
1.表示クエリーを作成する場合
{顧客表.顧客コード , 顧客名 , 商品名 , 数}
or
{注文表.顧客コード , 顧客名 , 商品名 , 数}
どちらの列で作成しても問題ないと思います。
2.更新クエリを作成しようとする場合
(1).{顧客表.顧客コード , 顧客名 , 商品名 , 数}
or
(2).{注文表.顧客コード , 顧客名 , 商品名 , 数}
・表作成後、顧客コードを更新すると考えた場合
(1)の場合は、顧客コードのマスター列を更新するため、子表:注文表の列も更新されるためエラーは起きないと考えています。
(2)の場合は、注文表の顧客コードの更新になるため、更新エラーになると考えています。
質問:検索クエリー(ビュー)を作成する場合は、特に列の選択は気にしなくてもいいと思っているのですが、
更新クエリーを作成する場合は、(1)(2)のようなケースがあると思っています。
更新クエリーの列の選択は、更新エラー等まで考えて列選択をしたほうがいいのでしょうか。
(親表の列を、使用するという考えでは雑でしょうか。)
お礼
情報ありがとうございます。 >顧客コードの更新と言うことですが、マスターテーブル(顧客表)の主キー(顧客コード)を更新する場合と、トランザクションテーブル(注文表)の外部キー(顧客コード)を更新する場合では、意味合いが異なります。 マスターの主キーの更新は、キーの値そのものを更新します。 トランザクションの外部キーの更新は、マスターのどのレコードと関連付けるかの変更です。 自分でも、度の表から参照しているか書き出してみたら 意味が分かりました。 親表のレコードを使用する時点で、意味が変わってしまうことも分かりました。 ありがとうございました。