2013-07-22 7 views

答えて

19

RethinkDBは現在、主キー以外のフィールド上の一意性制約をサポートしていません。

アプリケーションの一意性を明示的にチェックするために、一意のフィールドがプライマリキーとして格納される補助テーブルを使用できます。

+0

ありがとうございます!基本的に、私は1つのフィールドをユニークにすることを好みます。私がPrimaryKeyでそれを解決できるなら、私にとっては大丈夫です! – daslicht

+4

これはまだ最適なソリューションですか?これは3年前に投稿されました。 – chovy

+0

@ chovyおそらく、私は、MongoDBのような一種の邪魔になることを避けるためにユニークなセカンダリキーを拒否することにしたと思いますが、ユニークなセカンダリキーを許可しますが、シャード間の一意性を保証しません。 – Andy

-1

比較的簡単な代替方法は、セカンダリインデックスを使用することです。したがって、補助テーブルを混乱させることはありません。

get_allメソッド(http://rethinkdb.com/api/#js:selecting_data-get_all)でアプリケーションのチェックを行うことはできません。

+12

問題は、これをアトミックに行うことができないことです。私。セカンダリインデックスをチェックしてキーが存在しないことと実際にドキュメントを挿入する時間との間に、他の人が同じキーを持つドキュメントを挿入する可能性があります。 –

+0

このリンクは壊れています。もしそれが原子ではないのであれば気にしないですが、サンプルコードを提供できますか? – chovy

関連する問題