2

2 つのテーブルに正規化したい重複行を含むテーブルがあります。

user | url | keyword
-----|-----|--------
fred | foo | kw1
fred | bar | kw1
sam  | blah| kw2

これを 2 つのテーブル (user と url_keyword) に正規化することから始めたいと思います。これを正規化するために実行できるクエリはありますか、それともテーブルを構築するためにスクリプトを使用してテーブルをループする必要がありますか?

4

1 に答える 1

4

いくつかのクエリでそれを行うことができますが、私は postgreSQL に慣れていません。最初に、ID 列を含むテーブル users を作成します。また、列 userID を既存のテーブルに追加します。

次に、これらの行に沿って何か:

INSERT INTO users (userName)
    SELECT DISTINCT user FROM url_keyword

UPDATE url_keyword
    SET userID=(SELECT ID FROM users WHERE userName=user)

次に、古いユーザー列を削除したり、外部キー制約を作成したりできます。

于 2009-08-21T05:03:15.050 に答える