1

ユーザー登録システムを作成するときは、ユーザーの電子メールをユーザー名として使用します。

データベース スキーマを作成するとき、それらを 2 つの別個のフィールドとして扱うべきですか、それとも単に 1 つとして扱うべきですか?

例えば。

USER_TABLE {USER_ID, USERNAME, FNAME, LNAME, EMAIL}

また

USER_TABLE {USER_ID, USERNAME, FNAME, LNAME}

2つのフィールドを別々に保存する唯一の議論は(それらが同じであっても)、ユーザーが電子メールではないユーザー名を作成できるようにすることを決定した場合、ある種の将来を保証するためだと思いますか?

考え?

4

3 に答える 3

1

時期尚早の最適化を避け、1 つのフィールドのみを使用します。2 つのフィールドが必要になった場合でも、1 つのフィールドを簡単に作成して入力できます。

于 2013-06-20T18:20:50.097 に答える
0

ユーザーが電子メール アドレスではないユーザー名を作成できるようにする合理的な可能性があると思われる場合は、email 列と user_id 列を分けておくことをお勧めします。これは、新しいシステムを構築している場合に特に当てはまります。

私はシステム設計の格言を持っています。

つまり、「私たちのビジネス ルールは、領域 X で変更されることは決してない」と考えるのは、しばしば間違いであるということです。ビジネス ルールは大きく変わります。

メールと user_id を区別するために、後でいつでもテーブルに新しいフィールドを追加できます。列の追加は簡単です。メール目的で元の user_id 列を使用する、作成したすべてのコードを変更することは、さらに困難になります。これが、user_id と email の区別を最初からコードに組み込むことをお勧めする理由です。

于 2013-06-22T12:30:18.973 に答える
0

両方の属性を含めることができますが、制約 (「チェック」制約) を追加して、ユーザー名と電子メールが同じであることを保証します。ユーザー名または電子メールを必要とするビジネス ロジックは、適切な属性に対して記述できます。それらを独立させる必要がある場合は、制約を削除するだけです。

ユーザー名や電子メールの一意性制約を忘れないでください。

于 2013-06-23T07:58:37.473 に答える