2010-12-01 4 views
1

私は膨大な量の第三者データを扱っています。各データセットには一意の識別子を持つ項目があります。したがって、SQLiteのUNIQUEカラムを使用してデータの整合性を確保するのは簡単です。何千ものレコードのうちUNIQUE列の規則を曲げるSQLite

私は、サードパーティのソースからIDを持っているサードパーティのソースB.

ルールを曲げ、そして独特の列に重複するエントリを可能にする方法はありますから、一致2つの固有のID?この1つのケースを処理するためにデータをどのように再編成すればよいのでしょうか。

UPDATE:

CREATE TABLE "trainer" (
    "id" INTEGER PRIMARY KEY AUTOINCREMENT, 
    "name" TEXT NOT NULL, 
    "betfair_id" INTEGER NOT NULL UNIQUE, 
    "racingpost_id" INTEGER NOT NULL UNIQUE 
); 

問題データ:

ミスビバリーJトーマスhttp://www.racingpost.com/horses/trainer_home.sd?trainer_id=20514

ミスBJトーマスhttp://www.racingpost.com/horses/trainer_home.sd?trainer_id=11096

ミス対ビバリーJ.トーマスhttp://form.horseracing.betfair.com/form/trainer/1/00008861

両方R (私の主要なデータソース)は、1つのBetfairエントリーと一致します。これは数千ものレコードの中で唯一のものです。

答えて

0

racingpostが1つだけ一致する必要がある場合は、エラー状態です。

racingpostにidごとに2つの一致があることが許可されている場合は、2つのidを持つか、1つを選択するか、またはデータを結合する必要があります。

racingpostが主要なソースであるため、2つのIDを持つことが理にかなっています。しかし、そのデータセットを改善したい場合、そのデータを組み合わせるか、最も有用なものを選択する方がより正確です。実際の質問は、これらの2つのレコードがどれくらい重複しているかであり、信頼性の高いデータを検出できるかどうかです。オーバーラップが小さい場合、またはオーバーラップ条件がうまく検出された場合、コンバインはより理にかなっています。オーバーラップが大きく、確実に検出できない場合は、最新の更新を選択するか、2つのIDを持つ方が便利です。

+0

langston:名前、ID、B IDを格納するテーブルがあります。残念ながら、この単一のB IDは2 x A IDと一致します。私は残念なことに、これを解決するために見落としているいくつかの解決策があることを期待していたIDが主要なデータソースです。そうでなければ、この1つの例外のためだけに、複数のテーブルに分割する必要があります。 –

+0

私の答えが更新されました.Bではなく、2つの一致が表示されます。もう一度、2番目のAレコードがエラーかどうかを判断する必要があります。そうでない場合は、目的に合った「正しい」レコードがあるかどうかを判断する必要があります。両方が「正しい」場合は、どこか別のテーブルの準備ができています。どのように見えるかは、追加の情報なしで決定することは不可能です。 –

+0

langston:私の問題に固有の詳細情報が更新されました。収集され、照合されるデータの例のように。 –