0

私はデータベースを作成しており、次のような構造のテーブルを持っています

         Att1    Att2    Att3   ....
User1    
User2
User3
....

ここで、各属性 (Att1、Att2、Att3、...) にブール変数を関連付けたいと思います。次のようなもの:

Att1    No
Att2    No
Att3    Yes
...     ...

各属性はユーザー (リストの好み) からの数値スコアですが、実際に重要かどうかを各属性にタグ付けしたいと思います。このタイプの依存関係を処理するための標準的なアプローチはありますか? ありがとう!

4

3 に答える 3

0

実際には、キー、2つの属性、および呼び出されるFKを持つAttributeエンティティ呼び出しであるように思えます。ListingPreferenceIdScoreIsImportantUserUserID

UsercurrentleyにはId鍵しかありません。


つまり、属性には属性がありません。つまり、モデルが間違っているということです。

于 2012-05-23T12:21:31.477 に答える
0

テーブルにレコードを埋め込むことができればいいのですが。ただし、標準 SQL およびほとんどのデータベースはこれをサポートしていません (例外はありますが)。

「IsImportantAtt1」や「IsImportantAtt2」などのフィールドを発明して、一貫した命名規則を使用します。これを行うとき、すべての「Is」変数が「Y」または「N」の値のみを取るという規則もあります。出力に「はい」と「いいえ」を表示したい場合は、その変換にビューを使用するか、アプリケーション層で行います。

于 2012-05-22T22:00:48.783 に答える
-1

属性自体が重要でない場合、属性のスコアは重要ですか?そうでない場合は、NULLスコアは属性が重要ではないことを意味するという規則を単純に持つことができます。

それ以外の場合は、属性列ごとに別の(ブール)列を追加できます。

         Att1    Important1    Att2    Important2    Att3    Important3   ....
User1    
User2
User3
....

ところで、属性は固定されていますか?つまり、常にまったく同じ属性のセットを持っていますか?そうでない場合は、EAVモデルの方が適している可能性があります(EAVには従来からある特定の欠点がありますが)。

ここに画像の説明を入力してください

重要でない属性は、USER_ATTRIBUTEテーブルから単純に省略できます(「no」が上部の私の質問に対する答えであると想定しています)。

于 2012-05-23T12:02:11.493 に答える