【发布时间】:2016-09-28 07:10:20
【问题描述】:
我在这里遇到了一些设计问题。我是这方面的新手,所以我需要一些帮助。 由于公司合并,一切都必须进入其中一个系统;我应该用另一家公司的新客户 ID 映射我们的客户。
当我获得新的 customerID 时,我应该确保它是唯一的,我们现有的 customerID 也是如此。
Current customerID: CurCustID
New customer ID: NewCustID
首先,我希望数据库确保 CurCustID 列中的每个 CurCustID 都是唯一的 - 只有一条记录,其次我希望 NewCustID 列是唯一的 - 只有一条记录。 第三,我希望 CurCustID 和 NewCustID 的行组合只接受唯一数据。
如果你能帮助我,我将非常感激,另一方面,如果我的方法是不好的做法并且有这样做的最佳做法,那么请告诉我。
USE [Database]
GO
/****** Object: Table [dbo].[TblMapning] Script Date: 05/30/2016 14:30:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TblMapning](
[CurCustID] [varchar](255) NOT NULL,
[NewCustID] [varchar](255) NOT NULL,
PRIMARY KEY CLUSTERED
(
[CurCustID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
【问题讨论】:
-
如果您必须合并两个客户表,我认为最好的办法是将新添加公司的客户带入您的客户表中。因为当您将新公司客户转移到现有客户时,您可能会有重复,因此您必须考虑用新 id 更新旧 id(使其唯一),但是您必须在引用此 id 的所有子表中更改此 id。
-
@Shukri Gashi。不幸的是,由于法律问题,这是不可能的:-(
标签: sql sql-server mapping