2012-01-11 12 views
2

私はデータベースを設計するのが初めてです。多分それは愚かな質問ですので、私はそれを許してください。だから、私はユーザー用のデータベースを設計しています。ユーザーは登録情報を入力した後、一意の受領番号を取得します。だから私の質問は受領番号以来です。 Userテーブルのプライマリキーとして使用することはできますか?または、userIDをプライマリキーとしてuserIDを使用してテーブルの各行にuserIDを割り当てるという標準的な方法を採用する必要がありますか?プライマリキーとの混同

+0

これらの領収書は何ですか? – simchona

+2

ユーザーは領収書番号で識別されていますか?次のように:彼は時間の終わりまでこの番号を保持し、この番号はこのユーザーを特定する以外の目的に使用されませんか?はいの場合は、先に進んでください。いいえの場合は、これらの要件を満たす個別のユーザーIDを使用します。 – Tomalak

+0

そのようにユーザーが情報を入力すると、一意の受領番号がユーザーの電子メールに送信されます。その領収書番号を使用して、彼は彼の注文の状態を見ることができる。 – user1142462

答えて

0

を作ることができるかもしれません。長さが数字や文字、または20桁を使用して構築された - - 十分に複雑で、より良い使用のユーザーIDとReceiptNo

にその値を割り当てる - レシートいいえ単純な整数であることができ、DBから生成することができる場合、より良い

サロゲートユーザーIDを使用します

ReceiptNoが単純な整数で、そのユーザーがおよびの唯一のユーザーであることを識別する場合、これをPKeyとして使用します。

+0

Oleg Dog、返信いただきありがとうございます。領収書番号は英数字と8文字であるため、自動インクリメントされたユーザーIDを使用することをお勧めします。 – user1142462

1

領収書番号は、その後のみ整数が含まれている場合は、領収書がない場合は、領収書・ノー自動インクリメント番号などのフィールド、

+0

領収書番号は英数字で、8文字です。 – user1142462

+0

だから、私は主キーとしてuserIDに固執すべきだと思いますか? – user1142462

+0

はい、この場合、 – mack

2

テーブルには複数のキーを設定できます。受領番号がユニークであるように意図されていて、DBMSにその属性に対するキー依存性をデータ整合性制約として適用させたい場合は、それをキーにする必要があります(PRIMARY KEYまたはUNIQUE制約によって実装される一意性、提供する)。

"プライマリ"になるキーを指定することは特に重要ではありません - 少なくとも、それはあなたが望むだけ重要です。本当に重要なのは、選択したキーの完全なセットです。任意のキーの要件は、一意性と還元性です。キーを選択するための感覚的な基準もあります。親しみやすさ、シンプルさと安定性

+0

おそらく、一般的には、熟知度基準でサロゲートスコアがゼロに非常に近く、安定性基準ではサロゲートMIGHTスコアが不十分です。 –

関連する問題