Как объединить перекрывающиеся системы идентификаторов в единую систему? - PullRequest
1 голос
/ 31 октября 2008

Какой лучший способ объединить несколько перекрывающихся систем идентификаторов в единую при сохранении старой системы идентификаторов.

У меня есть несколько разных идентификаторов на моем веб-сайте ... (Например, / publisher / 1234 и / designer / 1234) Я хотел бы объединить идентификаторы в новую систему, но хочу сохранить функциональность старой системы. 1003 *

Ответы [ 2 ]

1 голос
/ 31 октября 2008

@ Ответ Стивена А. Лоу, безусловно, самый простой и наименее влиятельный для существующих приложений.

Только для усмешек и предположений, давайте предположим, что вы можете захотеть внести и другие изменения в схему (новые таблицы, столбцы).

Я бы внимательно посмотрел на таблицы, прежде чем что-либо комбинировать - убедитесь, что сущности / отношения, представленные в таблицах, являются четкими и нормализованными. Если publisher и designer на самом деле - это одно и то же, одна и та же сущность, тогда может быть желательна новая таблица, объединяющая их.

Итак, создайте новую таблицу с новым уникальным идентификатором. Есть несколько способов затем связать этот идентификатор с исходными таблицами. Для структурирования «истории» (откуда она взялась и старого идентификатора) потребуется пара столбцов, в идеале в отдельной таблице (потому что они действительно не «о» новой таблице, верно?), Но они могли бы быть включены в новое определение таблицы.

Что-то вроде

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

Существуют и другие способы объединения идентификаторов, но двух описанных здесь, вероятно, достаточно.

1 голос
/ 31 октября 2008

бридж стол

column newId
column oldId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...