私はRail webappで作業しています。非常に基本的な情報(ID、ユーザー名とパスワード)とプロファイル(各ユーザーのプロファイルを含む)の2つのモデルUserがあります。 (主な理由は、定期的に呼び出される軽量ユーザーモデルと、不規則に呼び出される本格的なプロファイルを持つことです)。これらのモデルのそれぞれには、多くの子供がいます。レールにhas_one関係の代わりに同じキーを持つ2つのテーブル
今、自分のプライマリキーを持つプロファイルと、Userと一致する外部キーuser_idを持っています。
しかし、ユーザーモデルと同じキー(つまり、レコードが同じユーザーを参照する場合はProfile.id == User.id)を持つプロファイルモデルを用意する必要があるのだろうかと思います。これは利便性です。なぜなら、私がUserに属するオブジェクトを持っていれば、そのオブジェクトがProfileに属し、その逆になりたいからです。たとえば、ユーザーhas_manyとSpec has_manyの関係をChildModelに指定できます。彼らは同じキーを使用するので、ChildModelをSpecにマージする必要はありません。次に、Childオブジェクトに関連付けられたユーザーを探すためにProfileをUserに送ります。
何らかの理由で私がUserとSpecの主キーとの間に不一致があると、欠点があります。深刻な問題があります。
あなたはこの状況に対してどのような勧告をしますか?
ありがとうございます。
上記の質問には、プロファイルと仕様は実際に同じモデルですか?別の言い方をすれば、プロファイル、ユーザー、仕様、および子の4つのモデルがありますか、またはプロファイル、ユーザー、および子の3つのモデルしかありませんか? –
はい。私は私の質問の例を修正しました。さらに、プロファイルとユーザーは1対1の関係にあります。私は軽負荷のためにそれらを2つのモデルに分けるだけです。 – AdamNYC