Size: a a a

pgsql – PostgreSQL

2021 March 11

РЖ

Роман Жарков... in pgsql – PostgreSQL
Денис Морозов
Эфекта ноль.
Надо лучше стараться.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Nikita Chaykin
Или вообще неправильная архитектура изначально?
слишком мало вводных для ответа на такой вопрос.
при проектировании, вам следует не только про таблички думать, но и сразу представлять типовые запросы:
- все продукты в категории/подкатгории
- продукт принадлежит одной категории или нескольким? (это сильно повлияет на схему)
- иерархия категорий/подкатегорий где и как описывается?
- как проверить, что категория и подкатегория продукта связаны (чтобы не повесить категорию “Одежда” и подкатегорию “Электроинструмент” одному продукту)?

сразу думать о поиске и об аналитике.

мне кажется, что sub_categories тут лишняя, т.к. она ничем (кроме положения относительно других категорий) не отличается.
источник

NC

Nikita Chaykin in pgsql – PostgreSQL
Спасибо большое, пойду думать
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Victor Yegorov
слишком мало вводных для ответа на такой вопрос.
при проектировании, вам следует не только про таблички думать, но и сразу представлять типовые запросы:
- все продукты в категории/подкатгории
- продукт принадлежит одной категории или нескольким? (это сильно повлияет на схему)
- иерархия категорий/подкатегорий где и как описывается?
- как проверить, что категория и подкатегория продукта связаны (чтобы не повесить категорию “Одежда” и подкатегорию “Электроинструмент” одному продукту)?

сразу думать о поиске и об аналитике.

мне кажется, что sub_categories тут лишняя, т.к. она ничем (кроме положения относительно других категорий) не отличается.
Я мал-мала дополню.
1. мне не доводилось встречать  разделение на отдельные таблицы продуктов и категорий - всё в одной таблице продуктов;
2. поисковый запрос для понимать реализацию подобных вещей: иерархические запросы SQL
источник

LV

Leonid Vygovskiy in pgsql – PostgreSQL
Nikita Chaykin
Всем привет, подскажите пожалуйста правильно ли делаю, у меня есть таблицы product, categories, sub_categories, следовательно у моего product может быть и categories и sub_categories, а может вообще не быть ничего, я хочу в product сделать 2 столбца category_name, sub_category_name и передавать туда id в таблице categories или sub_categories соответственно
Если есть категория и под категория, значит рано или поздно появится под-под-категория :)

Я бы подумал (не факт, что в итоге бы так сделал) в сторону двух таблиц - продукт и категория. И по крайне мере на уровне структуры хранения данных заложил бы возможность поддержки неограниченного количество вложений в категориях. Т.е. упрощение не на уровне данных, а на уровне кода. На первый взгляд, поддержка категории-подкатегории в коде приложения сильно проще, чем полноценной иерерахии. С другой стороны, при необходимости, мне понадобится рефакторинг только кода приложения, без миграции схемы хранилища.
источник

NC

Nikita Chaykin in pgsql – PostgreSQL
Всем спасибо большое за ответы, но у меня не все так серьезно, нет никакой иерархии, просто есть три категории, каждая из которых включает в себя ещё 5 подкатегорий, если продукт содержит подкатегорию, следовательно он содержит и категорию, которая соответствует подкатегории, ну и продукт не может содержать подкатегорию , которая не соответствует своей категории , надеюсь, что понятно )
источник

D

Denisio in pgsql – PostgreSQL
вот твои три категории и 5 подкатегорий это и есть дерево
источник

D

Denisio in pgsql – PostgreSQL
а теперь представь что надо будет когда продукт будет переноситься из подкатегории в категорию. Например товаров в подкатегории стало сильно много и решили часть вынести в отдельную категорию. В дереве это решается апдейтом одного поля - ссылкой на группу.
В твоем случае с двумя таблицами это будет сложнее.
источник

D

Denisio in pgsql – PostgreSQL
ну и просто добавить ещё один уровень выльеца в модификацию структур таблиц. С деревом - ничего подобного не надо будет
источник

NC

Nikita Chaykin in pgsql – PostgreSQL
Понял, пойду смотреть как правильно делать ) Спасибо
источник

SM

Setplus Mac in pgsql – PostgreSQL
Всем привет. Подскажите, плиз: iotop показывает >90% на диске, вып-ся почти 10 инсёртов в секунду. Как нагрузку на диск снизить? С чего начать?
источник

D

Denisio in pgsql – PostgreSQL
почитать про bulk insert
источник

D

Denisio in pgsql – PostgreSQL
10 инсертов в секунду этокакто маловато для 90% загрузки диска
источник

SM

Setplus Mac in pgsql – PostgreSQL
Согласен
источник

SM

Setplus Mac in pgsql – PostgreSQL
Может быть проблема связана с тем, что постгря в докере?
источник

D

Denisio in pgsql – PostgreSQL
хотя зависит, может там вагон триггеров выполняется
источник

D

Denisio in pgsql – PostgreSQL
с инсертами ещо в пицот таблиц
источник

SM

Setplus Mac in pgsql – PostgreSQL
не-не, инсёрты в одну таблицу
источник

SM

Setplus Mac in pgsql – PostgreSQL
и только в одну
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Setplus Mac
Может быть проблема связана с тем, что постгря в докере?
СУБД называется постгрес. А постгря в докере - оно обязано доставлять боль и страдания тому, кто занимается подобным непотребством.
источник