私は次のような状況にあります。
ユーザーと企業を評価するためのレピュテーションテーブルが必要です。
このレピュテーションテーブルには、会社からユーザーに、またはその逆に与えられたレピュテーションが格納されます。
同じ列を持つ2つのレピュテーションテーブルを作成する必要があることが提案されました。1つはユーザー用、もう1つは会社用です。
私はそれが最善の方法だとは思いませんが、別の解決策を見つけることができません。
他にそれができる方法はありますか?
どうも
私は次のような状況にあります。
ユーザーと企業を評価するためのレピュテーションテーブルが必要です。
このレピュテーションテーブルには、会社からユーザーに、またはその逆に与えられたレピュテーションが格納されます。
同じ列を持つ2つのレピュテーションテーブルを作成する必要があることが提案されました。1つはユーザー用、もう1つは会社用です。
私はそれが最善の方法だとは思いませんが、別の解決策を見つけることができません。
他にそれができる方法はありますか?
どうも
あなたのアプローチが悪いとは思いません。別の解決策は、それぞれが独自のレコード (したがってエンティティ ID) を持つ抽象Entity
テーブルをUser
持つことです。次に、1 つのテーブル内の 2 つのエンティティ間の評価のみを追跡します。Company
Entity
Reputation
もう 1 つの方法はReputation
、ユーザー ID、会社 ID、およびユーザーによって与えられた会社の評判であるか、またはその逆であるかを示すtype
(または、モデルで論理的に思われるもの) フィールドを含むテーブルを用意することです。direction
ただし、正規化されていないようです。
その会社の一意のキーを含む会社のテーブルがあります。ユーザーについても同じです。
Co と User の関係は多対多だと思います。
Co と User の両方のキーと、Co-rep 用と User-rep 用の 2 つのフィールドを含むテーブルがもう 1 つ必要です。Co-key と User-key の組み合わせは、このテーブルの一意のエントリになります。