私は、異なるシステムによって生成されたいくつかのテーブルを持っています。生データで利用できる一意の識別子はありません。同じシステムからあるテーブルにプライマリキーを設定していますか?
いくつかのファイルがに基づいて参加することができます。
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-これは、これが私たちが持っている最も細かいデータをまとめていると付け加えたいと思います。これは、アンケート(数週間後に受信される可能性があります)を特定のインタラクションに戻し、そのインタラクションの長さを持つ別のファイルを結び付けるために使用されます。また、そのインタラクションでセールが行われたかどうか、など
他のテーブルには、これと外部キーの関係がありますか? –
インタラクション自体のIDが必要です。その後、従業員と顧客のために外部キーが必要になります。これはインタラクションテーブルでなければならないようですので、 'interact_id'や' interaction_date'のような名前は必要ないはずです。 'id'と' date'は十分でなければなりません。 – Devon
データソースとして7つのファイルがあります。その中にはタイムスタンプは含まれていないものもあります。私の問題は、同じ日に複数の対話がある場合です。同じ従業員の顧客の1日に2つの注文(タイムスタンプなし)があるとします。同じ日に5つの通話記録があります(タイムスタンプ付き)。特定のコールに2つの注文をどのようにマッチさせるかを私が知る方法はありません。確かに、それらの呼び出しのうち2つの間に注文が行われましたが、注文があった特定の相互作用はわかりません。したがって、interaction_idを割り当てて、それが異なるファイルにどのように関連するかを知るのは難しいです。 – trench