在维护旧ID系统的同时,将多个重叠ID系统统一为统一系统的最佳方法是什么。
我的网站上有几个不同的ID ...(例如/ publisher / 1234和/ designer / 1234)我想将ID统一到一个新系统中,但希望保留旧系统的功能。 / p>
答案 0 :(得分:1)
桥牌表
column newId
column oldId
答案 1 :(得分:1)
@Steven A. Lowe的回答肯定是对现有应用程序最简单,影响最小的。
只是为了咧嘴笑笑,我们假设您可能还想对架构进行其他更改(新表,列)。
在组合任何内容之前,我会仔细查看表格 - 确保表格所代表的实体/关系是夹板和规范化的。如果publisher
和designer
真的是同一个东西,同一个实体,则可能需要一个新表来组合这两个实体。
因此,使用新的唯一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的方法,但这里描述的两个方法可能就足够了。