2

与えられたテーブル:

CREATE TABLE Table1
(
    UniqueID int IDENTITY(1,1)
    ...etc
)

では、なぜ増分を1以外に設定するのでしょうか。

初期シード値の設定方法が異なることがわかります。たとえば、1か月に1つのデータベーステーブル(たとえば)を作成していて、古いテーブルが中断したところから新しいテーブルのUniqueIDを開始したい場合ですTable1_082009Table1_092009(私はおそらくその戦略を自分で使用することはないでしょうが、ねえ、私は人々がそれをしているのを見ることができます)。

しかし、増分のために?私はそれが本当に奇妙な状況でどんなに役立つか想像することができるだけです、例えば:

  • 最初のデータが挿入された後、後で誰かがID挿入をオンにしてギャップに新しい行を挿入したいと思うかもしれませんが、インデックスを効率的に検索するには、行を互いに近づけたいと思いますか?
  • URLに直接基づいてIDを検索していて、他のアイテムにユーザーが任意にアクセスしにくくしたい場合(たとえば、ユーザーがURLサフィックスをからに変更することを理解できるようにする代わり/GetData?id=1000/GetData?id=1001、次のURLが実際に/GetData?id=1437)になるように437の増分?もちろん、これがあなたの「セキュリティ」であるなら、あなたはおそらくすでに問題を抱えています...

私は他に何も考えられません。1ではない増分を使用した人はいますか?その理由は何ですか?私は本当に興味があります。

4

3 に答える 3

4

1 つのアイデアは、これを使用してデータの分割を容易にすることです (ただし、それを行うための「自動化された」方法が他にもあるかもしれません)

  • 2 つのサーバーがあるとします。
    • 1 つのサーバーで、1 から開始して 2 ずつ増やします
    • もう一方のサーバーでは、2 から開始して 2 ずつ増やします。
  • 次に、アプリケーションから、送信の半分を 1 つのサーバーに挿入し、残りの半分を 2 番目のサーバーに挿入します。
    • ある種のソフトウェア負荷分散

このようにして、エントリを識別できます。データが 2 つのサーバー/テーブルに分割されている場合でも、「UniqueID」は一意です。

しかし、それは突飛なアイデアにすぎません。おそらく他にもいくつかの用途があります...

于 2009-08-05T10:53:09.537 に答える
2

純粋な楽しみのために、(そうそう、私たちにはワイルドな側面があります)負のインクリメントを決定したことがあります。数字が大きくなると同時に値が小さくなるのは奇妙でした。

椅子にじっと座っていることはほとんどできませんでした。


編集(後付け):
IDENTITY の作成者が FOR ループに恋をしたと思いますか? ほら..

for (i = 0; i<=99; i+=17)

または、セミコロン以外の人々のために

For i = 0 to 100 step 17
于 2009-08-05T12:28:32.127 に答える
0

娯楽のためだけに。そして、あなたは本当に退屈しなければなりません。

于 2009-08-05T15:12:46.357 に答える