184 похожих чатов

Добрый день, Вопрос архитектурного типа. Если список товаров с рядом одинаковых и

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

Каким образом лучше их хранить в кликхаусе?

1. Положить всё в одну таблицу, на одинаковые поля заводим столбцы, персонализированные поля складываем в кортежи и храним в одном столбце
2. Положить всё в одну таблицу, под каждое поле заводим столбцы, то есть у каждого элемента появляются избыточные столбцы, но обходимся без кортежей
3. Под каждую категорию заводим отдельную таблицу, обходимся без кортежей, и без избыточных полей, но имеем ~ 20 таблиц. Не удобство с поиском по товарам их разных категорий

Какую реализацию выбрать? сам склоняюсь к пункту 1

3 ответов

9 просмотров

Это непохоже на задачу для clickhouse. Postgres? MySQL ?

Могу ошибаться, но от избыточных столбцов, заполненных null-ами, CH в производительности не теряет совсем ничего

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

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
всем вопрос. есть функция, которая иногда в линуксе валится с исключением EConvertError Invalid argument to date encode на строке Result:=LocalToUtcDateTime(FileDateToDateTime...
Handatros
9
И из-за этого сужается карман. Нет свободного полёта. Они либо могут какой-то заточенный прикладной софт, либо какой-то простой системный написать. По шаблону. А, допустим, по...
КТ315
9
Всем привет! Подскажите, как решить проблему или из-за чего это происходит. У меня есть проблема в WebStorm (v.2024.1.3): я ставлю любую тему, и через какое-то время меняется ...
Alexander Sheigov
12
А с каким компилятором не будет ошибкой использовать асм вставки?
Replicant ~
14
Подскажите пожалуйста, как все-таки правильно указывать реф на чарт-зависимость? Имеется сервис service1. Бандл с ним опубликован в Harbor: infra-harbor.xxx.lan/library/dev/yy...
Alexander Kozharsky
1
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Карта сайта