2016-12-31 7 views
4

私は、解析してデータベースに挿入する必要があるエントリを持つXMLインターフェイスを持っています。エントリにはすべての必要な情報が含まれていますが、データベースを正規化してベース情報からオブジェクトを生成しようとします。データベースキーとしての文字列から計算されたID

これは、ベースエントリの例です:

<entry url="http://example.com" author="Ex1" title="Title" category="Category1"/> 

、私は基本的に以下のベースオブジェクト(擬似コード)をしたい:もちろん

class entry: 
    entryID; (PK) 
    url; 
    title; 
    authorID; (FK) 
    categoryID; (FK) 

class author: 
    authorID; (PK) 
    name; 

class category: 
    categoryID; (PK) 
    name; 

これは私が挿入する必要があるという問題がありますカテゴリと作成者は、参照整合性制約に違反しないように実際のエントリを挿入する前にエントリーしますが、作成者とカテゴリをデータベースに書き込んでただちに新しいキーを復元してからエントリに書き戻したい減速するパフォーマンスが大幅に向上します。

この種の問題の推奨方法はありますか、カテゴリと作成者の名前に基づいてハッシュを計算するだけでよいですか?

+0

どのようなデータベースベンダーですか? –

+0

私はpostgre sqlを使用しています – narain

答えて

0

あなたは、そのキーを返し、テーブル内の最初の挿入データをクエリで使用すると、別のテーブルに挿入することができます

WITH author AS (
    INSERT INTO d_author (name) 
    values ($1) RETURNING id) 
insert to maintable (id) 
    select id from author 

(心によって入力された例、クエリWITHの詳細についてhttps://www.postgresql.org/docs/current/static/queries-with.htmlを参照してください) 。

関連する問題