0

私の質問は、データベースの観点から定式化されたものではなく、ビジネス ロジックの観点からの利点です。

例として、表 CreditCard と列 CreditCardNumber を使用します。2 つの同一の CreditCardNumber を持つことはできないため、CreditCardNumber に一意のインデックスを割り当てることができます。でも、これってビジネスルールじゃないですか?では、データベースで同様の CreditCardNumber を許可し、ビジネス ロジック層で独自性を確認する必要がありますか?

私は正しいですか?または、この場合に一意のインデックスを使用することにはどのような利点がありますか? または、両方のケースが正しく、誰でも選択できますか?

ありがとう。

4

1 に答える 1

0

一意のクレジット カード番号 (またはその他の同様の規則) の適用は、アプリケーション層とデータベース層の両方で行う必要があります。

アプリケーション層で一意性をテストして、ユーザーにフィードバックを提供できるようにします。たとえば、店員が新しいクレジット カード番号を入力しているとします。番号がデータベースに既に存在するかどうかをアプリケーションで確認し、存在する場合は、エラーを修正できるようにユーザーに警告します。

一意である必要がある列に対して重複したエントリが作成されないようにするために、データベース レベルで一意の番号を強制する必要があります。

于 2014-02-21T16:43:34.183 に答える