2016-04-06 11 views
0

カサンドラのアーキテクチャによれば、フィールドはCOMPOUND KEYとして言及する必要があります。そのキーによって、列からデータを選択できます。 examlpeについてはカサンドラUUID理解

CREATE TABLE hotelier.country (
    uuid ascii PRIMARY KEY, 
    name ascii 
) WITH bloom_filter_fp_chance = 0.01 

は名前で選択したい場合は、唯一のUUIDフィールドで

をデータを選択する複合キーとして広告フィールド名に必要なことができます。

正しい。

私の質問は、一般的な複合キーがユニークである場合、UUIDを使用する必要がある理由です。補助フィールドUUIDを追加する必要があるのはなぜですか?

BR!

答えて

0

名前で選択したい場合は、フィールド名を複合キーとして使用する必要があります。あなたは複合主キーとして名を追加する場合

いいえ、あなたはUUIDと名前によって選択することができ、あなただけの名前で選択することはできません、あなたは同じ時間

で常にUUIDを提供しなければなりません

私の質問はなぜ一般的な複合キーが一意である場合UUIDを使用する必要があります。

ためカサンドラに、サロゲートキーを生成するには、Oracleのように何のシーケンスはありません。これを行う方法は、たとえば、ランダムなUID発生器のクライアント側を使用することです。java.util.UUID.randomUUID()

+0

でも、名前とuuidを主キーとして使用して名前を検索することができます。(名前、uuid) – Whitefret

+0

はい、実際にはOPはCOMPOUND KEYを言いましたので、私は彼がPRIMARY KEY((uuid、name))を意味すると仮定しました – doanduyhai

+0

私は間違いを犯しました。 )。 OPが名前を問いただしたいが、依然としてユニークな主キーを持っているなら、彼はそれを行うことができる。 – Whitefret

0

私の質問は、一般的な複合キーがユニークである場合にUUIDを使用する必要がある理由です。補助フィールドUUIDを追加する必要があるのはなぜですか?

あなたの複合キーが本当にUNIQUEであることを本当に確信している場合は、UUIDを使用する必要はありません。

あなたのPKが電子メールであり、誰も同じ電子メールアドレスを使用していないことが確かな場合は、PKをPRIMARY KEY (email)として使用することができます。ちょうどそれが32文字の英数字のランダムなので、重複する確率は超低いため、行/パーティションは、一意であることを確認するために使用さ


はUUID。ランダムのUUIDでの重複の可能性についてwikipediaによると

、:

のみ次の100年のために毎秒10億のUUIDを生成した後、ちょうど1つの複製を作成する確率は約50%となります。または、別の言い方をすれば、地球上のすべての人が6億のUUIDを所有すれば、1つの複製確率は約50%になります。