2008-10-31 106 views
1

将几个重叠的id系统统一成一个统一的id系统,同时保持旧的id系统的最佳方式是什么?我想在我的网站上有几个不同的ID ...(E.g/publisher/1234和/ designer/1234)我想将ID统一到一个新系统中,但希望保留旧系统的功能。如何将重叠的id系统统一到一个系统中?

回答

1

@Steven A.洛的回答肯定是对现有应用程序的最简单,影响最少。我们假设您可能希望对模式进行其他更改(新表格,列)。

在组合任何事情之前,我会仔细看看表格 - 确保表格所表示的实体/关系是分离的并且正常化。如果publisherdesigner确实是同一个东西,那么同一个实体,那么组合这两者的新表可能是可取的。

因此,使用新的唯一ID创建新表。有几种方法可以将这个id关联回原始表。构建'历史'(它来自哪里和旧的ID)将需要几列,理想情况下在一个单独的表(因为他们真的不是“'关于'新表,对吧?),但他们可以被包含在新的表格定义中。

喜欢的东西

new table 
    column newId 
    . 
    . 
    . 
    column oldTableName 
    column oldId 

new table 
    column newId 
    . 
    . 
    . 

join table 
    column newId 
    column oldTableName 
    column oldId 

然后,您可以创建一个展示旧表结构,以现有应用的一个或多个视图。

create view oldTable id, [...] as 
    select oldId, newTable.col1, newTable.col2 
    where oldTableName = 'oldTable 

还有其他方法来合并ids,但这里描述的两个可能是足够的。

1

表桥

column newId 
column oldId