担当者とありますが実際には担当部課に近いです 地区によって担当する部課が決まっているのですが 極まれにそれ以外のところが担当することがあります なので 取引.tblから 担当者.tblに矢印を引いてしまいました 再度見直してやってみます
葵さん、こんにちは。 外部キーの表には、主キーが必要です。 こんなふうに設定してみては。 VIW定義画面 取引.tbl 主キー:ID 商品 数量 担当者.tbl 外部キー:担当者コード n---1 主キー:担当者コード 氏名 地区.tbl - 外部キー:地区コード n---1 主キー:地区コード 地区 表示項目名 所属対象表 項目 ID 取引.tbl 主キー:ID 数量 取引.tbl 商品 取引.tbl 担当者コード 取引.tbl 外部キー:担当者コード 氏名 担当者.tbl 地区コード 担当者.tbl 外部キー:地区コード 地区 地区.tbl 取引.tbl [担当者コード]の「参照整合性定義」画面左下の、 「参照項目入力時に表引き表として利用する」にチェックを入れておきます。 次回アクセスは月曜午後の予定です。 アックン(=^・^=)
葵さん 文面からは、参照整合性設定の意味を理解されていると思いますが、掲載されている図と 主キーとの関連で確認させて下さい。そのあたりにヒントがあります。 掲載図で取引.tblの[地区]から担当者.tblの[地区]に向かって参照整合性設定の矢印が 引かれています。「本当にこの様に設定しようとされたのですか?」が、疑問点です。 表の意味から、方向が反対ではないかと思います。 つまり、担当者.tblの[地区]は、ユニークな値、つまり複数の担当者が同じ地区を担当する 事があり得ないのであれば、この項目値はユニーク(唯一=値が重複しない)になり、担当者.tbl の[地区]に主キー設定をします。そして取引.tblは外部キーになります。 (本当にユニークな値になるかは、私には信じられないのですが) 値が重複しない事の担保として、重複禁止の索引を設定しておくとよいでしょう。 なお、主キーは表に対して1つのみ設定できる他、値が重複する可能性がある項目には 主キーの設定はできません。 取引.tblは、同じ地区に複数の取引が発生するはずなので、元々これを主キーに設定する事は 不可能です。 以上の通りの主キー設定が行ってあれば、1対n関係の参照整合性が設定できるはずです。
[ID]がユニークであるだけの例えば連番のような項目と推測してましたが、 "TOKYO-0001"または"01-0001"となっていて最初の番号が01だと"東京"47だと"沖縄" という風に意味を持たせた[ID]なのかな? だとしたら確かに[ID]が決まれば自動的に[地区]も決まるけれど・・・
質問1 取引.tblは新たな取引が発生するたびに[ID]を付けてレコードが日々追加・更新されていく表だと 推測していますが当たってますか? 質問2 もし質問1が当たっているなら[ID]="101"で[地区]が"東京"だった場合、[ID]が101以外、例えば[ID]="102" とかで[地区]が"東京"という事がありえると思うのですが、そういう事はありえないのですか?
> 地区で担当者が決まっているので 図のように関連付けようと思ったのですが.... それなら担当者からコードを表引きしてコードを参照整合させるとか? 地区に必ず単独の担当者がいるなら担当者.TBLで地区を主キーにすればよさそうな。 > すべての表の参照整合をとらないと 結合表で更新不可となってしまうので > これをなんとかしたいと思って上記のことを考えたのですが..... これができるかはわかりませんが。
■No89に返信(しぼうかんさんの記事) 地区で担当者が決まっているので 図のように関連付けようと思ったのですが.... 実は 図にあった 取引.tblとその他のTBLを結合して結合表をつくっているのですが そこに担当者.TBLも結合させているのです すべての表の参照整合をとらないと 結合表で更新不可となってしまうので これをなんとかしたいと思って上記のことを考えたのですが..... 他になにか方法があるのでしょうか....
葵さん、こんにちは. 図では取引.tblに[ID]と[地区]の2つの主キーを設定する事が必要になります。 一つの表に主キーを2つ設定する事は出来ないので無理じゃないかと思います。 [地区]の意味がわからないのではっきりしませんが取引.tblにある[地区]と 担当者.tblにある[地区]に参照整合性を設定しなければならない意味はなんでしょう?
参照整合性について教えてください 例えば IDを主キーとして受付.tbl、取引.TBLを参照整合させているのですが、 地区を主キーとした担当者.tblを取引.TBLの地区項目を参照キーとして 当てようとしたところエラーがでて設定できませんでした こういう場合 設定はできないのでしょうか?