如何将重叠的id系统统一到一个系统中?

时间:2008-10-31 00:17:40

标签: indexing

在维护旧ID系统的同时,将多个重叠ID系统统一为统一系统的最佳方法是什么。

我的网站上有几个不同的ID ...(例如/ publisher / 1234和/ designer / 1234)我想将ID统一到一个新系统中,但希望保留旧系统的功能。 / p>

2 个答案:

答案 0 :(得分:1)

桥牌表

column newId
column oldId

答案 1 :(得分:1)

@Steven A. Lowe的回答肯定是对现有应用程序最简单,影响最小的。

只是为了咧嘴笑笑,我们假设您可能还想对架构进行其他更改(新表,列)。

在组合任何内容之前,我会仔细查看表格 - 确保表格所代表的实体/关系是夹板和规范化的。如果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

还有其他合并ID的方法,但这里描述的两个方法可能就足够了。