ユーザーが賭けを作成できるアプリケーションの開発を開始しています。次のスキームが与えられた場合
TABLE Player
PlayerID PRIMARY KEY
PlayerName
(...)
TABLE Bet
BetID PRIMARY KEY
BetName
(...)
TABLE plays_in
BetID
PlayerID
PRIMARY KEY(BetID, PlayerID)
FOREIGN KEY BetID
FOREIGN KEY PlayerID
(BetName, PlayerID) の一意性を定義して、ベットが同じ名前を複数回持つことができるようにすることはできますか? 特定のプレーヤーが「MyFirstBet」という名前の賭けに 1 回だけ参加できるということですか? 上のプレーヤーとこの賭けをしない他のプレーヤーは、彼の賭けに一度「MyFirstBet」という名前を付けることができるはずなので、賭けの名前をプライマリキーまたは一意として定義したくありません。可能であれば、そのためにも余分なテーブルを作成することは避けたいです。これは、DBMS ではなくコードで解決する問題ですか?