|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Доброго времени суток. Для одного клиента написал конфигурацию на платформе 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). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 01:33 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Прошу прощения. Примечание в пункте 1 некорректно. Правильное описание: - таблица с обычными элементами (имеющими все поля) и группами (как папка, директория в операционной системе), имеющими только наименование - иерархия групп - таблица только из элементов (имеющих все поля), но каждый элемент может иметь вложенные элементы - иерархия элементов ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 01:39 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Что вы будете делать с ранее введенными документами в случае изменения содержимого справочников? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:18 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:27 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Dogen, если Вы имеете ввиду изменение ранее созданных элементов справочников, то: 1) ничего 2) как это сделано в 1С: выдать предупреждение и запустить проверку на использование элемента справочника в документах и, в зависимости от прав, разрешить либо запретить изменение элемента справочника. fte, благодарю за пояснения и прошу прощения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:40 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Kyplon2) как это сделано в 1С: выдать предупреждение и запустить проверку на использование элемента справочника в документах и, в зависимости от прав, разрешить либо запретить изменение элемента справочника. жесть жестяная, не надо равняться на эту программу версионность справочников нужна, если хотите хранить в документах внешние ключи либо хранить в документах собственно значения из справочников (решение спорное, но позволяет беспроблемно справочники менять) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 10:28 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Dogen, Dogen как оптимальным образом реализовать иерархию в Справочнике, в котором суммарное количество элементов не более 1000, а суммарное количество групп не более 50, глубиной не более 5. ltree тип для хранения пути групп, где самый последний потомок это документ. получаете возможность работать с любой вложенностью и строить запросы по индексам + использование ltxtquery очень сильно расширит возможности ltree так же в ltree можно оптимально перестраивать ветки, находить вхождения в соседних ветках любого уровня и тп DogenКак оптимальным образом реализовать связь документа и таблицы с данными, находящимися внутри этого документа. если данные хоть немного структурированы внутри документа то данные хранить в jsonb виде, можно использовать вложенность данных. можно использовать расширение jsquery для ваших целей но в целом я бы для вашего проекта стал рассматривать не Postgres а ориентированную для хранения документов noSQL например mohgoDB ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 12:26 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
ссорян, отписал Dogen, ответы предназначались для Kyplon ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 12:27 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Legushkaориентированную для хранения документов noSQL например mohgoDB какие она дает преимущества если документ нельзя перевести в форму простого текста? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 14:42 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Legushkaориентированную для хранения документов noSQL например mohgoDB и какие она дает преимущества если документ довольно сильно структурирован, еще и похоже, что структура заранее понятна? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 14:43 |
|
Проектирование Документоориентированной БД
|
|||
---|---|---|---|
#18+
Благодарю за пояснения. Касаемо ltree и прочего https://habrahabr.ru/post/329204/ Про json думал, но в нем нет нужды, т.к. все, как правильно заметили, структурировано. Более того - все реализовано и работает только на платформе 1С Предприятие, но есть желание то же самое реализовать в виде Web-приложения, а ввиду вариативности решения поставленной задачи есть вопросы по оптимальному подходу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2017, 02:27 |
|
|
start [/forum/topic.php?fid=53&fpage=62&tid=1996060]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 304ms |
total: | 449ms |
0 / 0 |