2008-10-31 5 views
1

Quelle est la meilleure façon d'unifier plusieurs systèmes d'ID qui se chevauchent en un système unifié tout en conservant l'ancien système d'identification.Comment unifier des systèmes d'identification qui se chevauchent dans un système unique?

J'ai plusieurs identifiants différents sur mon site Web ... (E.g/publisher/1234 et/designer/1234) Je voudrais unifier les identifiants dans un nouveau système, mais je veux préserver la fonctionnalité de l'ancien système.

Répondre

1

@Steven A. La réponse de Lowe est certainement le plus simple, moins d'impact sur les applications existantes.

Juste pour les grimaces et les fous rires, supposons que vous souhaitiez apporter d'autres modifications au schéma (nouvelles tables, colonnes).

Je regarderais attentivement les tables avant de combiner quoi que ce soit - assurez-vous que les entités/relations représentées par les tables sont cleat et normalisées. Si publisher et designer sont vraiment la même chose, la même entité, alors une nouvelle table combinant les deux pourrait être souhaitable. Créez la nouvelle table avec un nouvel identifiant unique. Il existe plusieurs façons d'associer cet ID aux tables d'origine. Structurer l '«histoire» (d'où il vient et l'ancien id) va exiger quelques colonnes, idéalement dans un tableau séparé (parce qu'ils ne sont pas vraiment «sur» la nouvelle table, non?), Mais ils pourraient être inclus dans la nouvelle définition de la table.

Quelque chose comme

new table 
    column newId 
    . 
    . 
    . 
    column oldTableName 
    column oldId 

ou

new table 
    column newId 
    . 
    . 
    . 

join table 
    column newId 
    column oldTableName 
    column oldId 

Vous pouvez ensuite créer une ou plusieurs vues qui présente l'ancienne structure de table pour les applications existantes.

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

Il existe d'autres méthodes pour fusionner les ID, mais les deux décrites ici sont probablement suffisantes.

1

table de bridge

column newId 
column oldId 
Questions connexes