問題タブ [uniqueidentifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 一意のマシン ID の生成
Windows OS を実行している特定のマシンに固有の ID を生成する関数を作成する必要があります。
現在、WMI を使用してさまざまなハードウェア パラメーターをクエリし、それらを連結してハッシュし、一意の ID を取得しています。私の質問は、使用すべき推奨パラメーターは何ですか? 現在、bios\cpu\disk データの組み合わせを使用して一意の ID を生成しています。また、メトリックごとに複数の結果が存在する場合は、最初の結果を使用しています。
しかし、2 つの異なる Windows OS でデュアル ブートするマシンが、各 OS で異なるサイト コードを生成するという問題に遭遇しました。これは、理想的には発生しないはずです。
参考までに、これらは私が現在使用している指標です。
sql - MS SQLのPKでの連続したuniqueidentifierの目的は何ですか?
Guidsに基づく主キーは(断片化のために)最高のパフォーマンスを発揮しないことは知っていますが、それらはグローバルに一意であり、レプリケーションシナリオを可能にします。
一方、統合識別子は、スケーラビリティを犠牲にしてパフォーマンスを向上させます。
しかし、どのようなシナリオで、誰かが主キーとしてシーケンシャルuniqueidentifierを使用したいと思いますか?GUIDの目的を上回っていると思いますが、それでも時々、その後のことについて言及しているのを目にします。
ここで何が恋しいですか?
java - Java でグローバルに一意の識別子を生成する
概要:永続的な Java Web アプリケーションを開発しています。重複を防ぐために、永続化するすべてのリソースにグローバルに一意の識別子があることを確認する必要があります。
ファインプリント:
- 私は RDBMS を使用していないので、派手なシーケンス ジェネレータ (Oracle が提供するものなど) を持っていません。
- 高速で、できればすべてメモリ内にあることを望みます-ファイルを開いて値をインクリメントする必要はありません
- スレッドセーフである必要があります (一度に 1 つの JVM だけが ID を生成する必要があると予想しています)。
- JVM のインスタンス化全体で一貫性が必要です。サーバーがシャットダウンして起動した場合、ID ジェネレーターは以前のインスタンス化で生成したものと同じ ID を再生成するべきではありません (または、少なくとも可能性は非常に低くなければなりません - 何百万もの既存のリソースが予想されます)。
- EJB 固有 ID パターンの記事で例を見てきました。それらは私にはうまくいきません (ミリ秒ごとに複数のリソースを永続化するため、System.currentTimeMillis() だけに依存したくありません)。
- この質問で提案されている回答を見てきました。それらについての私の懸念は、時間の経過とともに重複した ID を取得する可能性はどのくらいかということです。UUIDにjava.util.UUIDを使用するという提案に興味をそそられましたが、繰り返しになりますが、重複の可能性は限りなく小さくする必要があります。
- 私はJDK6を使用しています
unicode - 識別子にユニコードを使用した経験は何ですか
最近では、Unicode を使用する言語が増えています。これは良いことです。しかし、それは危険ももたらします。以前は、1 と l、および 0 と O を区別するのに苦労しました。しかし、今では、類似した文字の完全な新しい範囲があります。
例えば:
これらを使用すると、非常に見つけにくいバグを作成することはそれほど難しくありません。
私の職場では、識別子に ANSI 文字を使用することにしました。ユニコード識別子を使用している人はいますか? また、その経験は何ですか?
php - PHPの短い一意のID
一意のIDを作成したいのですが、のuniqid()
ようなものを与えてい'492607b0ee414'
ます。私が欲しいのは、tinyurlが与えるものに似たものです:'64k8ra'
。短いほど良いです。唯一の要件は、明確な順序を持たないことと、一見ランダムな数字のシーケンスよりもきれいに見えることです。文字は数字よりも優先され、理想的には大文字と小文字が混在することはありません。エントリの数はそれほど多くないため(最大10000程度)、衝突のリスクは大きな要因ではありません。
任意の提案をいただければ幸いです。
linux - UNIX ライクなシステムから一意の ID を取得する
Unix ライクなシステム (可能であれば) から、アプリケーションが同じマシンで実行されるたびに永続化される一意の ID を取得したいと考えています。可能であれば、Linux、FreeBSD、Solaris などから同じ ID を取得したいのですが、マシンごとに新しい ID を生成するのではなく、既存の ID を取得したいと考えています。オペレーティング システムに由来するものであり、MAC アドレスのようなものは使用したくありません。
他に利用可能なオプションがない場合は、MAC を他のものと組み合わせて使用できます。たとえば、id は、MAC アドレスと他のものを組み合わせた md5 ハッシュにすることができます。
あなたの提案を聞きたいです。
役に立つ場合、私のアプリケーションは C/C++ で書かれています。
これらすべての目的は、ユーザーがアプリケーションを 2 回以上実行するのを防ぐことです。一度だけ走りたい。
database - レコードの uniqueidentifier キー値を取得する
SQL Server 2005 のコンテキストでは、主キーが一意の識別子 (GUID) であり、newid() 関数によって既定値が生成されるテーブルがあります。新しいレコードをテーブルに挿入するストアド プロシージャを作成したいと考えています。レコードの PK 値を取得するにはどうすればよいですか? ID 宣言されたフィールドの場合、これは簡単です。scope_identity() を呼び出します。ガイドをどのように進めればよいですか?
ありがとう、ルシアン
language-agnostic - 一意の参照番号戦略の生成
うーん...ここで私のCSの知識が私を失望させます。一意の参照番号を生成するアルゴリズムを書きたいです。
セキュリティ上のリスクがあるため、連番は使用したくありません。また、英数字を使用したいと考えています。ref にも最小長と最大長があります。(長すぎる GUID は使用できません)
理想的には、ref が以前に使用されたかどうかを確認するために永続化レイヤーにクエリを実行したくありません。
どのような戦略を採用できますか?
.net - log4netのカスタムプロパティとしてuniqueidentifiers/guidsを使用する
GUIDであるカスタムプロパティを追加しようとしていますが、次のエラーが発生します。
System.InvalidCastException:パラメーター値を文字列からGUIDに変換できませんでした。---> System.InvalidCastException:「System.String」から「System.Guid」へのキャストが無効です。
私はこれを設定で指定します:
私が使用する実際のコード(スニペット)は次のとおりです。
何か助けてください?:)データベースのidフィールドは、uniqueidentifier NOT NULLとして定義されていますが、主キーの制約はありません。
sql-server - VBScriptで文字列をuniqueidentifierに変換します
SQLサーバーデータベースでストアドプロシージャを実行するスクリプトがあります。問題は、ストアドプロシージャがuniqueidentifierパラメーターを受け取ることです。データベース(nvarchar)からセッションIDを取得する関数があるので、VBScriptはそれを文字列にし、ストアドプロシージャに渡すために変換する必要があります。
ストアドプロシージャを実行しようとすると、「キャスト指定の文字値が無効です」というメッセージが表示されます。
データベース内の何も変更できないので、スクリプトでこれを克服する方法が必要です。