Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Вопрос про jsonb / 10 сообщений из 10, страница 1 из 1
28.05.2017, 17:11
    #39461076
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
Здравствуйте,

Вопрос немного теоретический. Допустим есть таблицы:

attributes

id, title

products

id, title, attr (jsonb)

В поле attr ключом является название атрибута. Допустим название атрибута поменялось, как в таком случае решается проблема ссылочной целостности? Я так понимаю в jsonb внешние ключи не поддерживаются. Просьба опытным товарищам подсказать. Спасибо.
...
Рейтинг: 0 / 0
28.05.2017, 20:01
    #39461106
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
nov17Здравствуйте,

Вопрос немного теоретический. Допустим есть таблицы:

attributes

id, title

products

id, title, attr (jsonb)

В поле attr ключом является название атрибута . Допустим название атрибута поменялось, как в таком случае решается проблема ссылочной целостности? Я так понимаю в jsonb внешние ключи не поддерживаются. Просьба опытным товарищам подсказать. Спасибо.

Имеется ввиду, в поле attr ключом является название атрибута из таблицы attributes.
...
Рейтинг: 0 / 0
29.05.2017, 05:29
    #39461182
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
nov17Здравствуйте,

Вопрос немного теоретический. Допустим есть таблицы:

attributes

id, title

products

id, title, attr (jsonb)

В поле attr ключом является название атрибута. Допустим название атрибута поменялось, как в таком случае решается проблема ссылочной целостности? Я так понимаю в jsonb внешние ключи не поддерживаются. Просьба опытным товарищам подсказать. Спасибо.

Никак. json/jsonb Это не про ссылочную целостность а про хранение ненормализованных данных.
Нужна ссылочная целостность такого рода - используйте нормальные поля.

--
Maxim Boguk
dataegret.ru
...
Рейтинг: 0 / 0
29.05.2017, 11:00
    #39461335
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
Maxim Boguk,
если обеспечить неудаляемость атрибутов (отглагольное сущ-е), и ключами в жейсоне сделать их (несменяемые)id а не тайтлы, то "в некотором роде" ссылочная целкосность обнуружиццо взад.

но в некотором не слишком достаточном.

и вообще, сваливаться в нереляционность нужно очень осторожно. когда нормальные формы не срабатывают. или когда базенка игрушечных размеров.
...
Рейтинг: 0 / 0
05.06.2017, 02:47
    #39465639
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
Т.е если атрибуты удаляются и редактируются, то более подходящим является EAV?
...
Рейтинг: 0 / 0
05.06.2017, 09:53
    #39465720
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
nov17,

>если обеспечить неудаляемость атрибутов

читать:
"если обеспечить неудаляемость атрибутов ИЗ СЛОВАРЯ атрибутов"
//оставив в нем редактируемость имен

т.к. fk у вас нет . и ни cascade ни restrict вы обеспечить не в состоянии
а триггер на delete /truncate -- вполне


про лучшесть ЕАВ-а расскажите попа дробнее.
...
Рейтинг: 0 / 0
05.06.2017, 23:58
    #39466280
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
qwwqnov17,

>если обеспечить неудаляемость атрибутов

читать:
"если обеспечить неудаляемость атрибутов ИЗ СЛОВАРЯ атрибутов"
//оставив в нем редактируемость имен

т.к. fk у вас нет . и ни cascade ни restrict вы обеспечить не в состоянии
а триггер на delete /truncate -- вполне


про лучшесть ЕАВ-а расскажите попа дробнее.

Про то, что лучше не могу ничего сказать. Я в данный момент только изучаю работу с postgre. Для практики делаю интернет магазин, с произвольным количеством атрибутов. Сделал EAV, вроде ссылочная целостность с помощью внешних ключей есть и при поиске товаров по атрибутам работают индексы, но что-то смущает количество INNER JOIN - ов. Решил попробовать атрибуты товаров хранить в json, но даже если ключами делать id атрибутов, при удалении атрибутов придется вручную удалять так же и ключи во всех товарах.
...
Рейтинг: 0 / 0
06.06.2017, 00:10
    #39466287
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
qwwqа триггер на delete /truncate -- вполне
.

А как насчет производительности при огромном количестве товаров?
...
Рейтинг: 0 / 0
06.06.2017, 11:43
    #39466571
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
nov17qwwqа триггер на delete /truncate -- вполне
.

А как насчет производительности при огромном количестве товаров?
кхм, стесняюсь спросить, как насчет производительности каскадов для любой схемы поддержания ссылочной целостности, допускающей удаление атрибута из справочника (т.е. порождающей каскад "в огромном количестве товаров")

или вы о чём-то другом ?


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

всё остальное -- на ваше усмотрение. творите, выдумывайте, пробуйте
я как-то не в восторге от перспективы частого редактирования записей с широкими тостами под размещение 1000-чь тегов/атрибутов. но если количество индивидуальных атрибутов много меньше, а (частая) редактируемость скорее теоретическая, чем реальная потребность -- то можно пробовать array-и, hstore и прочие json-ы
...
Рейтинг: 0 / 0
06.06.2017, 19:04
    #39467219
nov17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про jsonb
qwwq,

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


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