2016-04-19 5 views
0

私は、異なるシステムによって生成されたいくつかのテーブルを持っています。生データで利用できる一意の識別子はありません。同じシステムからあるテーブルにプライマリキーを設定していますか?

いくつかのファイルがに基づいて参加することができます。

interaction_time, customer_id, employee_id 

他のファイルは、タイムスタンプが含まれていないとだけinteraction_dateがあります。問題は、同じ顧客が同じ日に同じ従業員に何回か話すことがあることがあることです。したがって、interaction_date, customer_id, employee_idを使用することは必ずしも一意ではありません。

Python(pandas)を使用して、私が通常行っていることは、interaction_date, customer_id, employee_idという一意の値をすべて見つけることです。これらの行を別々のデータフレームとしてフィルタリングし、結合します。したがって、このデータは、特定の日付に1人の顧客が1人の従業員と1回対話した行です。次に、複数の相互作用があった行を連結後のデータと一緒に戻して連結/追加します。

SQL Serverでこれを設定する方法についての推奨事項はありますか?私はそれがかなり一般的でなければならないと仮定します。私は今、テーブルを構築しています。私のプライマリキーは.../customer_id/employee_idの複合キーでなければなりませんか?重複を処理するにはどうすればよいですか(これらの行は、データを結びつける明確な方法がないため、他のファイルに結合することはできません)。

edit-これは、これが私たちが持っている最も細かいデータをまとめていると付け加えたいと思います。これは、アンケート(数週間後に受信される可能性があります)を特定のインタラクションに戻し、そのインタラクションの長さを持つ別のファイルを結び付けるために使用されます。また、そのインタラクションでセールが行われたかどうか、など

+0

他のテーブルには、これと外部キーの関係がありますか? –

+0

インタラクション自体のIDが必要です。その後、従業員と顧客のために外部キーが必要になります。これはインタラクションテーブルでなければならないようですので、 'interact_id'や' interaction_date'のような名前は必要ないはずです。 'id'と' date'は十分でなければなりません。 – Devon

+0

データソースとして7つのファイルがあります。その中にはタイムスタンプは含まれていないものもあります。私の問題は、同じ日に複数の対話がある場合です。同じ従業員の顧客の1日に2つの注文(タイムスタンプなし)があるとします。同じ日に5つの通話記録があります(タイムスタンプ付き)。特定のコールに2つの注文をどのようにマッチさせるかを私が知る方法はありません。確かに、それらの呼び出しのうち2つの間に注文が行われましたが、注文があった特定の相互作用はわかりません。したがって、interaction_idを割り当てて、それが異なるファイルにどのように関連するかを知るのは難しいです。 – trench

答えて

2

でもinteraction_time, customer_id, employee_idが一意データベース内の値を識別しないので、あなたは二つのことを行うことができます。

1)それは悪い習慣ですが)(すべての主キーを作成しないでください

2)interaction_idというフィールドコールを作成すると、消費者と従業員のやりとりが一意に決定されます。このフィールドは自動増分に設定できます。

+0

ポイント2のチャレンジは、interaction_date(ファイルのタイムスタンプなし)、customer_id、employee_idのみを持つファイルです。その日の1つの従業員/顧客の組み合わせに対して3つの対話(行)がある場合、タイムスタンプを持つ5つの行を持つファイルにどのように結合できるかは想像もできません。したがって、顧客と従業員は5回(タイムスタンプを含む)相互作用しましたが、タイムスタンプのない別のファイルにはそれらの相互作用のサブセット(5つのうち3つ)しか含まれていません。どんな相互作用が確実につながっているかを言うことができる本当の方法はありません。 – trench

+0

なぜあなたはタイムスタンプではなく、interact_dateを持つファイルが必要ですか?データベースに書き込んだら、日付だけに基づいてそれらを照会することができます。 –

+0

真。それらを使用することの価値は、顧客と従業員の90%以上が特定の日付に1回しか対話しないことです。だから私はタイムスタンプのないファイルからタイムスタンプのある他のファイルに値を戻すことができます。大きなものは注文です。ある日には、顧客と従業員の間に1つだけの対話があったので、その対話中に注文が行われたことがわかりました。これは、私がタイムスタンプを知っていることを意味します。調査が終わったら、インタラクションがどれくらい続くかなど知っています。分析には非常に役立ちます。 – trench

関連する問題