Как я могу создать многомерные массивы с использованием PostreSQL и способен ли PHP справиться с этим? - PullRequest
0 голосов
/ 29 ноября 2010

Привет,
Я хочу собрать данные из трех таблиц, но я не знаю, как это сделать, потому что я хочу создавать многомерные массивы и использовать их с php.Я новичок в pgsql, так что я действительно не знаю, каковы ограничения:)
Так кто-нибудь может показать мне, как создать простой массив pgsql?

спасибо

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

В Postgre есть массивы-типы данных (версии массива почти всех простых типов данных). Но я бы не рекомендовал использовать их, в частности , а не в сочетании с PHP. Потому что с текущими функциями базы данных он вернет массив в виде строки. Кроме того, он как бы не соответствует назначению реляционной базы данных, где массив должен рассматриваться как количество строк в одном столбце. Ни одной строки одного столбца.

Чтобы попытаться ответить на ваш вопрос. Вы, вероятно, должны рассматривать «самый глубокий» элемент вашего многомерного массива как «строку» из базы данных. где в нескольких столбцах указан путь, по которому нужно перейти к значению.

Пример:

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

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

}
0 голосов
/ 29 ноября 2010

Обычно база данных возвращает плоский массив сжатых результатов.Таким образом, вы, скорее всего, не сможете выполнить один запрос, чтобы получить вложенные элементы так, как вам хочется.Однако я не работал с PostgreSQL.

Я бы посоветовал сделать несколько запросов для получения необходимых данных и затем поместить их в нужную конфигурацию.

Может быть, кто-то, ктоработал с Postgre можете подтвердить?

...