0

ブラウザベースのゲーム内でプレーヤーデータを保持するスキーマを設計しています。

私には3つの関係があります。それらのうちの2つには、少なくとも2つの候補キーがありますが、3つ目には、{playerId、message、date}の3つの属性しかありません。

1..1:0 .. *の関係があるため、この関係は一意の行を保持しません。つまり、各プレーヤーに任意の数のニュースタプルが存在する可能性があります。タプルを一意に識別できる必要はありません。とにかく、どの属性も実際には候補になることはできません。

私の質問は次のとおりです。リレーショナルモデルでは、重複するタプルは存在できず、各リレーションにはキーが必要であると述べています。上記の私のスキーマは、これらの制約の両方と矛盾しますが、私の目的のために機能します。一意のインデックス属性(IDなど)を追加するだけでよいことはわかっていますが、それは不要のようです。私は何かが足りないのですか?

御時間ありがとうございます。

4

2 に答える 2

1

不足しているのは複合主キーだと思います。

あなたの場合、重複するエントリを取得しないように保存している場合は、複合主キーを使用します。

しかし、同じプレーヤーが同じ日に同じメッセージを送信することを考えてみてください。この場合、複合主キーと競合することになります。主キーとしての仮想一意IDは、節約の方法です。

于 2011-06-23T12:33:00.017 に答える
0

ひっかけ問題 !明確な答えはありませんが、タプル全体に少なくとも単一性の制約がない場合は、問題が発生する可能性があると思います。一部のアプリが正常に実行され、同じタプルを1.000.000.000回挿入しようとしていると想像してください。あなたのテーブル...

于 2011-06-23T12:32:55.717 に答える