Ich habe ein paar Tabellen, die von verschiedenen Systemen ohne eindeutige Kennung auf den Rohdaten generiert werden.Primärschlüssel in meinen Tabellen einrichten?
interaction_time, customer_id, employee_id
Andere Dateien enthalten nicht den Zeitstempel und es gibt nur ein interaction_date
:
Mehrere Dateien, die aus dem gleichen System sind, können auf der Grundlage der verbunden werden. Das Problem ist, dass manchmal derselbe Kunde mehrmals am selben Tag mit demselben Mitarbeiter sprechen kann. Die Verwendung von interaction_date, customer_id, employee_id
ist nicht unbedingt eindeutig.
Mit Python (Pandas) finde ich normalerweise alle eindeutigen Werte von interaction_date, customer_id, employee_id
. Ich filtere diese Zeilen als separaten Datenrahmen und mache meine Joins. Diese Daten sind also nur die Zeilen, in denen ein Kunde an einem bestimmten Datum einmal mit einem Mitarbeiter interagiert hat. Dann concat/anfügen die Zeilen, die mehrere Interaktionen hatten, wieder mit den Post-Joined-Daten zusammen.
Haben Sie Empfehlungen, wie Sie mit SQL Server so etwas einrichten können? Ich nehme an, dass es ziemlich üblich sein muss. Ich baue jetzt Tabellen und bin mir nicht sicher, was mein Primärschlüssel sein sollte ... ein zusammengesetzter Schlüssel des Datums/customer_id/employee_id? Wie gehe ich mit den Duplikaten um (diese Zeilen können nicht mit anderen Dateien verknüpft werden, da es keine eindeutige Möglichkeit gibt, die Daten miteinander zu verknüpfen)?
edit- Ich wollte nur hinzufügen, dass dies die granularsten Daten, die wir haben, zusammenhält. Dies würde verwendet werden, um eine Umfrage (die Wochen später empfangen werden könnte) zurück an eine bestimmte Interaktion zu binden und eine andere Datei mit einer Länge dieser Interaktion zu verknüpfen, und eine andere Datei, die angibt, ob bei dieser Interaktion ein Verkauf getätigt wurde.
usw.
Haben andere Tabellen eine Fremdschlüsselbeziehung zu dieser? –
Benötigen Sie auf jeden Fall eine ID für die Interaktion selbst. Dann werden Sie Fremdschlüssel für den Angestellten und den Kunden wollen. Scheint so, als ob dies eine Interactions-Tabelle sein sollte, daher sollten Sie keine Namen wie 'interaction_id' und' interaction_date' brauchen, wobei 'id' und' date' ausreichen sollten. – Devon
Ich habe 7 separate Dateien als meine Datenquellen. Einige davon enthalten keine Zeitstempel. Mein Problem ist, wenn mehrere Interaktionen am selben Tag stattfinden. Angenommen, es gibt 2 Aufträge an einem Tag (kein Zeitstempel) für einen Kunden mit demselben Mitarbeiter. Es gibt 5 Anruflisten am selben Tag (mit einem Zeitstempel). Es gibt keine Möglichkeit für mich, sicher zu wissen, wie die 2 Bestellungen zu einem bestimmten Anruf zusammenpassen. Sicher, die Bestellungen fanden während 2 dieser Anrufe statt, aber ich weiß nicht, welche spezifische Interaktion die Bestellungen hatte. Daher ist es schwierig, eine Interaktions-ID zuzuweisen und zu wissen, wie sie sich auf verschiedene Dateien bezieht. – trench