powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / В чем разница между тип поля и тип поля[]
11 сообщений из 11, страница 1 из 1
В чем разница между тип поля и тип поля[]
    #38887125
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например, text и text[]
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887156
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PerederiyНапример, text и text[]

По идее text[] - это массив типа text :-)
Хотя разница сомнительная.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887180
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Скалярное значение и массив, строгая типизация.

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

А почему возник такой вопрос?
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887241
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,
если предполагается в поле хранить (и работать с ним) массив, то какой тип лучше

PS
Вдогонку общий вопрос. Меня убеждают, что использовать массивы - это здорово ( в базе два десятка таблиц и в каждой много полей с массивами в полях). Я признаться в своих проектах массивы вообще не использовал. Кто имеет опыт с массивами - поделитесь: плюсы и минусы
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887286
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiyvyegorov,
если предполагается в поле хранить (и работать с ним) массив, то какой тип лучше

PS
Вдогонку общий вопрос. Меня убеждают, что использовать массивы - это здорово ( в базе два десятка таблиц и в каждой много полей с массивами в полях). Я признаться в своих проектах массивы вообще не использовал. Кто имеет опыт с массивами - поделитесь: плюсы и минусы

Ну вообще-то массивы это уход от реляционной модели.
По большому это "синтаксический сахар".
Т.е. вместо нормализации БД, мы можем ввести в какую-нибудь таблицу массив.
Плюсы - простота
Минусы - отход от реляционной модели данных.

И раньше, по моему до 8 версии, массивы тормозили.
Сейчас вроде бы нормально.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887368
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiyесли предполагается в поле хранить (и работать с ним) массив, то какой тип лучше
Реляционные СУБД строго типизированы. Если нужны временные метки, используйте timestamptz, если числа — соответствующий числовой тип. И массив строить на основе соответствующего типа. Если вы хотите хранить дома, километры и литры в одном поле типа text[], то у вас будут проблемы, даже если вы думаете (или вас убеждают) в обратном!

PerederiyМеня убеждают, что использовать массивы - это здорово ( в базе два десятка таблиц и в каждой много полей с массивами в полях). Я признаться в своих проектах массивы вообще не использовал. Кто имеет опыт с массивами - поделитесь: плюсы и минусы Думаю, что вас склоняют к No-SQL (key-value). Для этого будет лучше использовать JSONB тип.

Массивы очень удобны для специфических задач. Но в целом для дизайна я предпочитаю реляционную модель. Она и гибка (для построения запросов), и строга (типы данных и ограничения целостности) одновременно.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887390
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulИ раньше, по моему до 8 версии, массивы тормозили.
Сейчас вроде бы нормально.Более того, в http://www.postgresql.org/message-id/flat/20178.1423598435@sss.pgh.pa.us]работе код , который позволит избежать сворачивания/разворачивания массивов (и других "пакуемых" типов данных) между вызовами функций, прирост в скорости существенный. Я надеюсь, что в 9.5 засунут, хотя бы для массивов и PL/pgSQL.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887590
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov Думаю, что вас склоняют к No-SQL (key-value). Для этого будет лучше использовать JSONB тип.
для плоского key--value удобнее был hstore (в нём конкатенация была "искаропки")

vyegorov Массивы очень удобны для специфических задач. Но в целом для дизайна я предпочитаю реляционную модель. Она и гибка (для построения запросов), и строга (типы данных и ограничения целостности) одновременно.
для индексирования как по телу таблицы так и подчинённым записям реляционная модель будет пригодна , если завести такую штуку, как кросс-табличные индексы.

А пока их нет -- суем все нужные подчиненки в массив -- и имеем возможность индексировать хоть GIST-ом + btree_gist. (с поиском по операторам над массивами). Хоть btree по скалярным ф-ям от массивов (применяю). В букваре по gist-ам у Бартунова встречалось. Можно комбинировать -- строгая реляционка, + триггерно поддерживаемые мат-вью (плата -- двойная и более нагрузка на диск).

минусы массивов (и прочей НоСКЛ) -- стандартные средства разработки морд их не поддерживают в плане наличия готовых контролов. надо кодить.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887635
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эттадля индексирования как по телу таблицы так и подчинённым записям реляционная модель будет пригодна , если завести такую штуку, как кросс-табличные индексы.
Да, я забыл об этом аспекте, GiST с массивами тут рулят.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887691
этта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,

минусы массивов

если вы меняете содержимое починенной реляционной записи -- она меняется одна

в случае массива -- поменяется вся запись "головной". каждое изменение "подчиненной" -- перезапись всего. если в массиве элементов много, добавляются удаляются они отдельными операциями -- индексы там опухают -- только в путь. а в toast-ах после чистки бывают много--гигабайтные индексы по пустой таблице тостов. требуется reindex. в общем плата не маленькая.

кросс-индексы были бы гораздо предпочтительнее. IOT какой-нибудь, хотя бы -- для handjob-а.
...
Рейтинг: 0 / 0
В чем разница между тип поля и тип поля[]
    #38887749
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этта,

> а в toast-ах после чистки бывают много--гигабайтные индексы по пустой таблице тостов

во на это надо показательный тест. может быть интересно
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / В чем разница между тип поля и тип поля[]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]