1

私の会社では、各テーブルに一意の識別子が必要です。ただし、ほとんどのルックアップ テーブルには、各エントリの数値コードがあります。たとえば、権限のリストがあります: 10 - なし、20 - 表示、30 - 編集など。コードは必須であり、一意である必要があります。また、コード「None」、「Edit」などのテキストも一意である必要があるため、それぞれが一意である必要がある 2 つの個別のフィールドがあります。ここで、guid 列を追加する必要があります。これで、テーブル内の 3 つの個別のフィールドがそれぞれ一意である必要があります。この例では、非常に単純なリストを使用しています。コード値は必須であり、これらのテーブルの一部は列挙型と同等です。コードとテキストの両方が必要です。それぞれが一意のインデックスを持つ 3 つの個別のフィールドを持つことは、通常のテーブル設計に反するように見えます。

これを回避するためのより一般的な方法はありますか?

ありがとうございました。

4

2 に答える 2

0

インデックスは、テーブルを並べ替えたりリンクしたりするときに通常使用されるフィールドに配置されます。たとえば、製品注文の「正規化された」環境があるとします。顧客 ID とその他の情報を含む顧客用のテーブルが 1 つあり、顧客 ID を含む注文用のテーブルが 1 つあります。これらのテーブルを頻繁に結合するため、両方のテーブルで顧客 ID のインデックスを作成します。

一意の識別子に関する限り、それらを一意にするためにインデックスを作成する必要はありません。

于 2013-09-16T14:38:15.870 に答える
0

すでにいくつかの固有の値があるのに、なぜその設定を変更したいのかわかりません。私の最後の雇用主でも同様の慣行がありました。一意に識別するフィールドがあったとしても、すべてに一意の識別子フィールドがありました。識別子フィールドを除いて、重複が誤って入力される原因となるエラーがプログラムにまれにあるため、これは良いことでした。これにより、通常、プログラムがクラッシュしたり、誤ったデータを返したりすることがなくなりました。これは、重複が想定されていない「一意の」フィールドではなく、常に識別子に結合しているためです。

于 2013-09-16T14:37:02.993 に答える