powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проектирование Документоориентированной БД
11 сообщений из 11, страница 1 из 1
Проектирование Документоориентированной БД
    #39560233
Kyplon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Для одного клиента написал конфигурацию на платформе 1С предприятие. Проблема в стоимости лицензий и доступе к информационной базе.
Цель: создать веб-приложение с аналогичным функционалом используя ASP.NET Core MVC и PostgreSQL.
Функционал: Пользователи заполняют документы путем выбора из Иерархических Справочников элемента, либо группы. Документ содержит Таблицу с кучей полей, которые пользователи заполняют аналогичным образом.
Вопросы:
1) как оптимальным образом реализовать иерархию в Справочнике, в котором суммарное количество элементов не более 1000, а суммарное количество групп не более 50, глубиной не более 5.
Примечание:
- таблица с обычными группами (как папка, директория в операционной системе), имеющей только наименование - иерархия групп
- таблица только из элементов, но каждый элемент может иметь вложенные элементы - иерархия элементов
2) Как оптимальным образом реализовать связь документа и таблицы с данными, находящимися внутри этого документа.
Примечание:
- таблица внутри документа содержит специальное поле, которое ссылается на другую таблицу, из которой анализируются определенные строки (используется фильтр исходя из данных документа), результатом анализа является строка с 10-ю символами типа VARCHAR(10) и вставляется в специальное поле каждой строки таблицы документа.
3) Быть может есть пример реализации описанного выше? Могу предположить что уже все изобретено и где-то описано, вот только что-то внятное найти не посчастливилось.
4) Лучше заменить использование обычных запросов в пользу вызова хранимых функций?
Пояснение:
- могу предположить что оптимальным решением с иерархическими справочниками будет использование дополнительных полей: ЭтоГруппа (isgroup) и Родитель (parent_id), как это реализовано в 1С, при этом будет использоваться рекурсия.
- таблица внутри документа может быть реализована ссылкой на другую таблицу с фильтром по id документа
- если я правильно понимаю, то реализация функционала для специального поля возможна не только со стороны ASP.NET Core MVC, но и со стороны PostgreSQL, используя хранимые функции, при этом веб-сервер будет вызывать функцию используя данные таблицы документа в качестве передаваемых параметров для фильтра, в результате чего хранимая процедура вернет строку VARCHAR(10).
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39560234
Kyplon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения. Примечание в пункте 1 некорректно. Правильное описание:
- таблица с обычными элементами (имеющими все поля) и группами (как папка, директория в операционной системе), имеющими только наименование - иерархия групп
- таблица только из элементов (имеющих все поля), но каждый элемент может иметь вложенные элементы - иерархия элементов
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39560778
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что вы будете делать с ранее введенными документами в случае изменения содержимого справочников?
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39560787
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kyplon,

ИМХО Вопрос здесь неуместен, Вам нужен форум Проектирование БД
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39560795
Kyplon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen, если Вы имеете ввиду изменение ранее созданных элементов справочников, то:
1) ничего
2) как это сделано в 1С: выдать предупреждение и запустить проверку на использование элемента справочника в документах и, в зависимости от прав, разрешить либо запретить изменение элемента справочника.

fte, благодарю за пояснения и прошу прощения.
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39561080
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kyplon2) как это сделано в 1С: выдать предупреждение и запустить проверку на использование элемента справочника в документах и, в зависимости от прав, разрешить либо запретить изменение элемента справочника.

жесть жестяная, не надо равняться на эту программу

версионность справочников нужна, если хотите хранить в документах внешние ключи

либо хранить в документах собственно значения из справочников (решение спорное, но позволяет беспроблемно справочники менять)
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39561183
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen,
Dogen как оптимальным образом реализовать иерархию в Справочнике, в котором суммарное количество элементов не более 1000, а суммарное количество групп не более 50, глубиной не более 5.
ltree тип для хранения пути групп, где самый последний потомок это документ. получаете возможность работать с любой вложенностью
и строить запросы по индексам + использование ltxtquery очень сильно расширит возможности ltree
так же в ltree можно оптимально перестраивать ветки, находить вхождения в соседних ветках любого уровня и тп


DogenКак оптимальным образом реализовать связь документа и таблицы с данными, находящимися внутри этого документа. если данные хоть немного структурированы внутри документа то данные хранить в jsonb виде, можно использовать вложенность данных. можно использовать расширение jsquery для ваших целей

но в целом я бы для вашего проекта стал рассматривать не Postgres а ориентированную для хранения документов noSQL например
mohgoDB
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39561185
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ссорян, отписал Dogen, ответы предназначались для Kyplon
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39561299
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaориентированную для хранения документов noSQL например
mohgoDB
какие она дает преимущества если документ нельзя перевести в форму простого текста?
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39561300
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaориентированную для хранения документов noSQL например
mohgoDB
и какие она дает преимущества если документ довольно сильно структурирован, еще и похоже, что структура заранее понятна?
...
Рейтинг: 0 / 0
Проектирование Документоориентированной БД
    #39563400
Kyplon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за пояснения.
Касаемо ltree и прочего
https://habrahabr.ru/post/329204/
Про json думал, но в нем нет нужды, т.к. все, как правильно заметили, структурировано. Более того - все реализовано и работает только на платформе 1С Предприятие, но есть желание то же самое реализовать в виде Web-приложения, а ввиду вариативности решения поставленной задачи есть вопросы по оптимальному подходу.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проектирование Документоориентированной БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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