0

正規化を支援するために、キーと値のペアをデータベースに保存しています。私がやりたいことは、「Apple」や「Banana」などの識別子に基づいて、一致するすべてのキー/値を反復処理し、キー/値ペアの「完全な」テーブル バージョンと同等のビューを生成することです. 詳細については、以下のフィドルを参照してください。

フィドル

ある種のカーソルを使用する必要があると思いますが、この種の問題に対する「最善の」アプローチについてはわかりません。

4

3 に答える 3

1

ID がビュー内の目的の行を一意に識別したと仮定すると (Fiddle の例ではそうではありません)、次のようなビューを作成できます。

create view details_view as
select id,
       max(case when key='Color' then value end) as color,
       max(case when key='Location' then value end) as location,
       max(case when key='Price' then value end) as price,
from   details
group by id;

私は以前、このようなクエリを生成するのに役立つパッケージを作成しました。ブログを参照してください。(私はここでもこの種のデータモデルに反対しました!)

于 2013-09-20T13:52:58.693 に答える
0

ID はオブジェクトごとに一意である必要があります。次に、タイプは別のキーになることができます。

フィドル

于 2013-09-20T13:57:24.280 に答える