1

古いIDシステムを維持しながら、いくつかの重複するIDシステムを統一されたものに統合する最良の方法は何ですか.

私の Web サイトにはいくつかの異なる ID があります... (例: /publisher/1234 と /designer/1234) ID を新しいシステムに統合したいと考えていますが、古いシステムの機能を維持したいと考えています。

4

2 に答える 2

1

@Steven A. Loweの答えは確かに最も単純で、既存のアプリケーションへの影響が最も少ないものです。

ニヤリと笑うためだけに、スキーマに他の変更(新しいテーブル、列)を加えたいと仮定しましょう。

何かを組み合わせる前に、テーブルを注意深く調べます。テーブルによって表されるエンティティ/関係が明確で正規化されていることを確認してください。publisherdesignerが実際に同じもの、同じエンティティである場合、2つを組み合わせた新しいテーブルが望ましい場合があります。

したがって、新しい一意のIDを使用して新しいテーブルを作成します。次に、このIDを元のテーブルに関連付ける方法はいくつかあります。「履歴」(元の場所と古いID)を構造化するには、理想的には別のテーブルにいくつかの列が必要になります(実際には新しいテーブルについてではないためです)が、可能です。新しいテーブル定義に含まれます。

何かのようなもの

new table
   column newId
   .
   .
   .
   column oldTableName
   column oldId

また

new table
   column newId
   .
   .
   .

join table
   column newId
   column oldTableName
   column oldId

次に、古いテーブル構造を既存のアプリケーションに提示する1つ以上のビューを作成できます。

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

IDをマージする方法は他にもありますが、ここで説明する2つでおそらく十分です。

于 2008-10-31T00:56:13.453 に答える
1

ブリッジテーブル

column newId
column oldId
于 2008-10-31T00:25:01.100 に答える