2010-11-29 22 views
0

ちょっと、
私は3つのテーブルからデータを収集したいのですが、私は多次元配列を作成してPHPで使用したいので、実際にその方法を知りません。私はpgsqlの新しいので、私は本当に限界が何であるか知っていません:)
誰も私にどのように簡単なpgsql配列を作成することができますか?PostreSQLを使用して多次元配列を作成するにはどうすればできますか?

ありがとう

+1

あなたは本当にのRDBMSで "アレイ" を作成しないでください。これらの多次元配列はどのように見えますか?あなたはPHPでDBに接続するために何を使用していますか? –

+0

データベース内での配列の使用は、しばしばデータベース設計が悪いことの兆候です。いくつかのサンプルデータ(テーブル定義を含む)と、そのデータに基づいて予想される出力を投稿できますか? –

答えて

1

Postgreには配列データ型(ほぼすべてのプレーンデータ型の配列バージョン)があります。しかし、具体的にはではなく、と組み合わせて使用​​することはお勧めしません。現在のデータベース関数では配列を文字列として返します。また、配列が1つの列の行の数とみなされるリレーショナルデータベースの目的に反しています。単一の列の単一の行ではありません。

あなたの質問にお答えください。あなたは、多次元配列の "最も深い"要素をデータベースの "行"として考えるべきです。いくつかの列は値に到達するために必要なパスを指定します。

例:

while($row = $result->fetch_object()) { 

    $multi_array[$row->base][$row->layer] = $row->value 

} 
0

通常、データベースは圧縮された結果のフラットな配列を返します。したがって、ネストされたアイテムになるように単一のクエリを実行することはできません。しかし、私はPostgreSQLで作業していません。

私の助言は、必要なデータを取得し、それらを目的の構成に配置するために複数のクエリを実行することです。

PostgreSQLを使って作業している人がいますか?

関連する問題