[前][次][番号順一覧][スレッド一覧]

rails:1417

From: 片平 裕市 <yuichi_katahira@m...>
Date: Fri, 28 Jul 2006 10:32:16 +0900
Subject: [rails:1417] Re: 同一テーブルを参照する2つの外部キーの設定

片平(Yu_kata)です。

> まだ誰も反応がないようなので反応してみます。

反応がなかったというか、
>> 「根本的にテーブルの設計が間違ってる!」ていうのはさておいて 
>> (ご
>> めんなさい)これをrailsに教えるには、どのように 
>> modelに表記すれば
>> いいのでしょうか?
この樣に書いてあった為に、反応出来なかったのではないかと思います。
有り体に言って、設計がまずいと思うのですが、そこはさておいてという
事でしたので。
で、さておけといわれましたが、後々破綻しそうな気がするので、設計を
指摘したいと思います。気に触りましたら御免なさい。

まず、よしみさんご指摘のように、顧客と店舗の関係記述は逆だと思いま
す。これは店舗1に対して複数の顧客がいると思いますので。
そこを直しても、もし新たに販売の種類が増えたら、その種別毎に店舗モ
デルに新たに記述をしなければ行けなくなります。
又、顧客が全員、全ての販売種別を使っているとは限らないのに、現状の
構成からは、それを識別するのが不可能に見えます。
これでは店内顧客リストや通信販売顧客リストを出せないのではないでし
ょうか?
これを解消する為に、顧客モデルに判別用のカラムを設けるとすると、販
売種別が増える度に新たにカラムを用意し、値をセットしなければいけな
くなります。

もし、私なら新たに販売種別のテーブルを用意します。
販売種別と顧客は多対多の関係なので、それを顧客テーブルと  
habtm で結
ぶか、又はさらに間にテーブルを用意して、has_many :through  
で結びま
す(個人的には交差テーブルの方が好みです)。
又、顧客、店舗間も、将来的に顧客が別の支店に移るとか複数店舗に同 
時に
注文するような事もありうるなら、間にテーブルを作成し、
has_many :through の関係で結び直します。

上記はわかっている内容だけで設計してみました。
実際の運用が見えてないので、これが正しいかどうかはわかりません。
各々の好みもありますし。ただ、いくらかでも参考になれば幸いです。

今の時点だけでも、不備が見受けられますので、一度設計を見直された 
方が
良いのではないかと思います。

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1416 2006-07-28 01:31 [walf443@g...        ] Re: 同一テーブルを参照する2つの外部キーの設定
->    1417 2006-07-28 03:32 ┗[yuichi_katahira@m...]                                       
      1425 2006-07-29 03:21  ┗[insight.insight@g...]