問題タブ [unique]
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.
nhibernate - nHibernate で重複データの挿入を防ぐには?
私はブログ/CMS システムを構築しています (楽しみのために、使用できるものがたくさんあることを知っています)。
Id (int) と TagName (string) プロパティのみを持つ単純な Tag エンティティがあります。次のようなことができるように nHibernate を構成したいと思います。
私は、Save(Tag) がルックアップのようなことを行うことを想定しています。タグが既に存在する場合は、何らかの形で tag2 を tag1 の値に置き換えます。nHibernate は、パラメーターが out パラメーターとして渡されなくても、パラメーターのプロパティを変更するいくつかの魔法を機能させます。ここで何が起こっているのか、私がやりたいことを行うためにこのメソッドを修正する方法を教えてもらえますか? タグ パラメータで out キーワードを使用する必要がないようにしています。
sql - 重複する varchar を更新して、SQL データベース内で一意になるようにします
テーブルの列に一意の制約を追加するようにデータベースを変更する必要がありますが、その中の VARCHAR データは一意ではありません。
既存のデータの末尾に連番を追加して、各値が一意になるように、これらの重複レコードを更新するにはどうすればよいですか?
たとえば、'name' を 'name1'、'name2'、'name3' に変更したい
sqlite - 一意の名前でSqliteを挿入し、IDを取得する
データベースに挿入する文字列のリストがあります。それらは一意でなければなりません。挿入するときは、ID を (別のテーブルの外部キーとして使用するために) 使用したいので、last_insert_rowid を使用します。2つの問題があります。
- 置換を使用すると、ID (INTEGER PRIMARY KEY) が更新され、データベースが壊れます (エントリは存在しない ID を指します)
- ignore を使用すると、rowid が更新されないため、正しい ID が取得されません
ID を取得するにはどうすればよいですか? 必要がない場合は、選択ステートメントを使用して文字列をチェックし、存在しない場合は挿入したくありません。どうすればいいですか?
sql - 部分的に異なる/一意の行を返す
2つの列でグループ化し、条件に基づいて追加の列を返すクエリを作成する必要があります。
たとえば、次の列があるとします。
ProductCode | シリアル番号| 数量| DatePurchased | 顧客ID
テーブルには、Quanititesと購入日が異なるProductCodeとSerialNumberの重複した組み合わせが含まれています。DatePurchasedの値が最大(最新)の行のProductCode、SerialNumber、Quantityを返したいのですが。さらに複雑にするために、これはCustomerID='xxx'であるすべての行に対して実行する必要があります。
何か案は???
助けていただければ幸いです。乾杯。
sql-server-2005 - SQL 2005 XML スキーマ - 一意の属性の定義
スキーマを作成しようとしているサンプル xml ドキュメントを次に示します。
次の目的で SQL Server 2005 スキーマ コレクションを作成しようとしています
。1. ID の重複を防ぎます。
2. 負の ID のみを許可します。
id 属性の type="xs:negativeInteger" で負の制約を実現できます。しかし、SQL 2005 で一意の制約または key\keyref を作成できません。type="xs:ID" を設定すると、ID 値に数値を使用できなくなります。負の ID は気にしません。
何かが足りないか、不可能です。それが不可能な場合、SQL 2005 が一意の属性を持つ機能をサポートしないのはなぜですか? テーブルに制約\トリガーまたはxmlインデックスを使用する回避策、または今は想像もできないその他の手法はありますか?
すべてのヘルプは大歓迎です。
algorithm - 文字列が異なる最初のインデックスを見つけるアルゴリズム?
文字列のコレクションがあり、すべてが異なる最初のインデックスを知る必要があります。これを行うには 2 つの方法が考えられます。
最初の方法:
これは、必要ではないように思われるセットのデータ構造を使用しているため、私にはひどいものです。
第二の方法:
しかし、ソート アルゴリズムはその性質上、探している情報にアクセスできるため、最初にソートを実行しなければならないことに悩まされます。
きっと、私が上にリストしたものよりも効率的な方法があるに違いありません. 最終的には、任意のタイプの配列に抽象化したいと考えていますが、それは些細なことであり、文字列の問題と考える方が簡単です。
何か助けはありますか?
**更新: どうやら自分のことをうまく説明できていませんでした。文字列が ["apple", "banana", "cucumber", "banking"] の場合、インデックス 0 で一致する 2 つの文字列 ("banana" と "banking") があったため、関数は 3 を返します。 1、および 2 であるため、3 はそれらがすべて一意である最初のインデックスです。
Daniel が以下で述べたように、私のニーズをより適切に述べるには、「すべての文字列で substring(0,i) を呼び出すとすべての一意の値になるインデックス i を見つけたい」**
algorithm - 検証を伴う一意の CD-KEY 生成のアルゴリズム
ユーザーが製品を登録するために使用する標準のソフトウェア ボックスにある通常の CD-KEY と同様に、製品のボックスに入れるための独自の CD-KEY を作成しようとしています。
ただし、ソフトウェアの販売は行っておりません。犯罪・医療目的のDNA採取キットを販売しております。ユーザーは CD-KEY が添付された唾液採取キットを郵送で受け取り、その CD-KEY を使用してウェブサイトでアカウントを作成し、結果を取得します。テストの結果は CD-KEY にリンクされます。これが、結果を患者に結び付ける唯一の方法です。したがって、失敗しないことが重要です:)
要件の 1 つは、誰かが間違った CD-KEY を入力し、それが他の誰かのキット用に承認され、それによって 2 つのキットが混同される可能性がないように、CD-KEY のリストを十分に「分散」する必要があることです。これにより、数千ドルの責任が発生する可能性があります。
たとえば、
00001
00002
00003のような数字の連続ではありません
...
誰かがキット 00002 を受け取ったが、誤ってそれを 000003 として登録した場合、その結果は他の誰かと照合されます。つまり、クレジット カード番号のようなものでなければなりません... 有効なシーケンスが入力されない限り、有効な番号がランダムにヒットする可能性は 100 万分の 1 です...
また、毎年 50,000 を超えるキットをさまざまなプロバイダー (アルゴリズムを使用して独自の CD-KEY を生成するプロバイダー) に販売しているため、以前に発行されたすべての CD-KEY のリストを維持して重複をチェックすることはできません。アルゴリズムは一意の CD-KEY を生成する必要があります。
また、入力したコードが無効な場合にユーザーに通知できるように、クイック チェック アルゴリズムを使用して CD-KEY が有効であることを確認する機能も必要です。これにより、私が信じている多くのハッシュまたは MD5 アルゴリズムが除外されます。また、128 ビットにすることはできません。コンピューターの画面に入力するのに誰が時間をかけるのでしょうか。
これまでのところ、最終的な CD-KEY 構造は
(4 文字の製品コード) - (4 文字の再販業者コード) - (12 文字の一意の検証可能な CD-KEY)になると私が考えていたもの
です。384A - GTLD - {4565 - FR54 - EDF3}
KEYS の一意性を確保するために、ソースの一部として現在の日付 (20090521) を含めることができます。一意のキーを 1 週間に 1 回以上生成することはないため、この値は、一意の初期値を得るために頻繁に変更されます。
一意のキーを生成するためにどのようなアルゴリズムを使用できますか?