在我的表中设置主键?

时间:2016-04-19 19:00:35

标签: sql sql-server

我有一些由不同系统生成的表,原始数据上没有可用的唯一标识符。

可以根据以下内容连接来自同一系统的多个文件:

interaction_time, customer_id, employee_id

其他文件不包含时间戳,只有interaction_date。问题是,有时同一个客户可以在同一天多次与同一个员工交谈。因此,使用interaction_date, customer_id, employee_id并不一定是唯一的。

使用python(pandas),我通常做的是找到interaction_date, customer_id, employee_id的所有唯一值。我将这些行作为单独的数据帧过滤并进行连接。因此,这些数据只是一个客户在某个特定日期与一名员工进行一次交互的行。然后我将具有多个交互的行连接/追加到后加入的数据。

有关如何使用SQL Server设置此类内容的任何建议?我认为它必须相当普遍。我正在构建表格,我不确定我的主键应该是什么...日期/ customer_id / employee_id的复合键?我如何处理重复项(这些行无法连接到其他文件,因为没有明确的方法将数据绑定在一起)?

编辑 - 我只想补充说,这是将我们拥有的最精细的数据捆绑在一起。这将用于将调查(可能在几周之后收到)重新绑定到特定的交互,并绑定另一个具有该交互长度的文件,以及另一个文件,该文件具有是否在该交互上进行了销售,等。

1 个答案:

答案 0 :(得分:2)

由于即使interaction_time, customer_id, employee_id没有唯一标识数据库中的值,您也可以做两件事:

1)根本不要制作主键(虽然这是一个不好的做法)

2)进行interaction_id字段调用,这将唯一地确定消费者与员工之间的互动。该字段可以设置为自动递增。