Ruby の Datamapper でこれを実行したいと思います。
テーブルを作成してから、SQL ステートメント (raw) を実行します。私のDBは現在SQLiteです。http://datamapper.org/docs/callbacks.htmlをチェックアウトしましたが、テーブルの構築後にコールバックを追加することについては何もありません。すべてのテーブルが生成された後、制約を直接追加するか、テーブルの変更のようなものを追加する必要があるため、これを言っています。制約は、別のテーブルからの複数のキーに対する unique_index です。このようなもの:
class Score
belongs_to :pageant, :unique_index => :single_score
belongs_to :candidate, :unique_index => :single_score
belongs_to :category, :unique_index => :single_score
belongs_to :judge, :unique_index => :single_score
end
とにかく、私が実現したいのは、ページェント、候補者、カテゴリ、審査員の各組み合わせが一意であることです。別のテーブルにリンクされていない別のフィールドを含めない限り、:unique_index は機能しません。そこで、生の SQL を介して制約を追加することを考えました (ORM を使用していない場合はそうするでしょう)。