Создание древовидной структуры

Автор Григорий01, 12 августа 2024, 14:04

0 Пользователи и 1 гость просматривают эту тему.

Григорий01

Можно ли организовать в Base отображение древовидной структуры?
Есть таблицы "Сборочные чертежи" и "Детали". Каждый СБ может включать в себя детали и другие СБ, а каждая деталь может в ходить в разные СБ.
Как это организовать? И есть ли инструменты для отображения такой структуры? Вложенность может быть до 4-5 уровней.
Это будет что-то вроде базы данных конструкторской документации

sokol92

#1
В этом вопросе много аспектов:
1. Иерархическая структура данных в SQL базах.
  Пример можно посмотреть, например, здесь.

2. Построение иерархических (SQL) запросов.
  Примеры - по предыдущей ссылке.
  К сожалению, синтаксис иерархических запросов в различных базах может (существенно) отличаться. К примеру, PostgreSQL и Oracle.

3. Визуализация (отображение) иерархических структур в LibreOffice.
  Посмотрите обсуждение в этой теме на форуме.


См. также пример иерархического классификатора "ОК 034-2014 (КПЕС 2008). Общероссийский классификатор продукции по видам экономической деятельности (ОКПД 2)".
Владимир.

economist

Можно иерархию хранить в одной плоской таблице с избыточностью. Да, не по фен-шую. Но так делали 50 лет.

Можно хранить ссылки, хороший пример - огромные базы в военных КБ, построенные на символьных ссылках (в файловой системе). При этом никакого дублирования  узлов, отсутствие дубликатов легко обеспечить программно.

То как реализованы отношения "многие по многим" в дорогущем софте типа 1С с ее поузлованием - нравится немногим. Хорошего образца для подражания нет.

В чем показывать иерархию?
- сводные таблицы Calc/Pandas
- процедурные графики и tree-контролы
- графы

Много JavaScript инструментов, всяких Mermaid итп. От плоской таблицы к визуальному путь часто лежит через JSON,  а с ним есть что выбирать. Но обычной реляции с бд или даже плоской таблицы с избыточностью - может хватить.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...