web-dev-qa-db-ja.com

「フォールド」および「ピボット」テーブルとは何ですか?

質問に対する回答とディスカッション これのように フォールドテーブルとピボットテーブルについて話します。

例えば。

紙のプレゼンテーションとサウンドの電子プレゼンテーションの唯一の違いは、後者の場合は折りたたみ式のテーブル構造の方が便利ですが、前者の場合はピボットテーブル構造です...

私はそれらの用語が何を意味するかについてGoogleで何も見つけることができませんでした(Googleはタンパク質構造に関する結果を出しました)。

誰かがこれらの用語の意味を例で説明してくれませんか?

7
Nick

これは、データを表す別の方法にすぎません。ワイド(ピボット)およびロング(フォールド)とも呼ばれます。例として、簡単にするために、3つのプロパティを持つレコードがあるとします。idnamedescriptionワイド(ピボット)バージョンでは、各プロパティは次のようになります。そのような独自の列:

CREATE TABLE `example_table` (
  id int not null,
  name archer(50) not null,
  description archer(100) null
)

長い(折り畳まれた)形式では、次のような2つの列があります。

CREATE TABLE `example_table` (
  property varchar(50) not null,
  value varchar(100) not null
)

後者は、列が事前に不明であるか、頻繁に変更される可能性が高い場合に、より大きな柔軟性を提供します。ただし、値のタイプを知る方法を設計する必要があり、ストレージタイプ(この例ではvarchar(100))へのシリアル化/逆シリアル化のオーバーヘッドがあるため、一般的に実装はより複雑です。

プロパティがあまり頻繁に変更されず、事前にわかっている場合は、ワイドフォーマットの方が適しています。これによりパフォーマンスは向上しますが、変更が必要な場合は柔軟性が低下します。

一般的に、保存するデータの構造がわかっている場合は可能な限りワイドフォーマットを選択し、最大限の柔軟性が必要であり、追加された複雑さを受け入れる用意がある場合は、長いフォーマットを選択します。

9
Mr.Brownstone