powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Непостоянное число справочников с редактируемыми числом и типом полей
25 сообщений из 92, страница 2 из 4
Непостоянное число справочников с редактируемыми числом и типом полей
    #33398013
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ecv wrote:
> достоинства известны
> недостаток - не покатит большой объем > 100000 объектов в одном спр
> триггера или прикладнуха - за все надо платить
даа? У меня max > 500000 - нормально усё... правда, пришлось работать
напильником, это да. пока руку набил....

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33398368
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И речь идет о том, чтобы не писать запросы для каждого справочника в явном виде, а спрятать это от программиста. Если я правильно тебя понял.А кто будет конфигурировать справочники ? Юзеры ?
Конфигурацией системы должны заниматься специалисты. Иначе - бардак. У меня SQL-запрос писать нужно. Это единственное, что есть от программирования и это по силам даже начинающему программисту-студенту. И это пожалуй единственный спопоб сделать и просто и эффективно.
Сделать мощный визард и исключить SQL в явном виде во первых сложно, и во вторых снизит эффективность работы с данными. Будет очередная 1С
Речь идёт не только о справочниках. Указанная технология УНИВЕРСАЛЬНА и позволяет отображать любую списочную и древоподобную информацию в т.ч. и с посторонних таблиц (соседних баз).
Справочник с единой структурой и интерфейсом менее универсален, хотя и является неплохим решением. Кстати, у меня он тоже есть, хотя упрощённый
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33398421
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV И речь идет о том, чтобы не писать запросы для каждого справочника в явном виде, а спрятать это от программиста. Если я правильно тебя понял.А кто будет конфигурировать справочники ? Юзеры ?
Конфигурацией системы должны заниматься специалисты. Иначе - бардак. У меня SQL-запрос писать нужно. Это единственное, что есть от программирования и это по силам даже начинающему программисту-студенту. И это пожалуй единственный спопоб сделать и просто и эффективно.
Сделать мощный визард и исключить SQL в явном виде во первых сложно, и во вторых снизит эффективность работы с данными. Будет очередная 1С
Речь идёт не только о справочниках. Указанная технология УНИВЕРСАЛЬНА и позволяет отображать любую списочную и древоподобную информацию в т.ч. и с посторонних таблиц (соседних баз).
Справочник с единой структурой и интерфейсом менее универсален, хотя и является неплохим решением. Кстати, у меня он тоже есть, хотя упрощённый
Именно юзеры (по требованиям :) ). Юзеры особо выдресированные, которые имеют звание админа, скорее всего. Они могут создать/удалить справочник, добавить/удалить/изменить поле, не говоря уже о самих значениях.
Система у меня такая. Конечно, будут какие-то предопределенные справочники.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33398889
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vinniPoohА когда на вновь созданный справочник должна ссылаться таблица с данными, она как-то модифицируется?
во-первых для этого в таблице с данными должно быть соотвествующее поле.
если оно есть, то на него накладывается внешний ключ на справочник,
если его нет, то оно добавляется и см. п.1.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33399205
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для эффективной работы всё равно нужно знать и базовый SQL и РСУБД.
Всё равно система оперирует запросами, а не какими-то модными объектными подходами. Если юзеры офигенно продвинутые, то что им мешает освоить базовый SQL ? Визард для создания таблиц/процедур/предстаалений можно заваять. Вот только зачем ? Всё уже изобретено. Аналогично и с конструкторами запросов.
Навигационный подход к данным, как практикуется в dBase/1C/Navision и т.п. считаю безнадёжно устаревшим, хотя он обеспечивает независимость от СУБД.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33399456
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSVДля эффективной работы всё равно нужно знать и базовый SQL и РСУБД.
Всё равно система оперирует запросами, а не какими-то модными объектными подходами. Если юзеры офигенно продвинутые, то что им мешает освоить базовый SQL ? Визард для создания таблиц/процедур/предстаалений можно заваять. Вот только зачем ? Всё уже изобретено. Аналогично и с конструкторами запросов.
Навигационный подход к данным, как практикуется в dBase/1C/Navision и т.п. считаю безнадёжно устаревшим, хотя он обеспечивает независимость от СУБД.
Так-то оно так, но у меня в спецификации явно прописано: пользователи могут создавать справочники. Тут уж ничего не попишешь.
Вот я и думаю.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33399623
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> но у меня в спецификации явно прописано: пользователи могут создавать справочники

Если справочники простые, то для этого можно придумать древоподобную таблицу, где узлы это новые справочники. Корнем справочника есть некий узел дерева (можно где-то его объявить). Справочник может быть либо плоским либо древовидным. Хотя с произвольным набором полей будет посложнее.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400041
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vinniPooh
Есть два варианта решения:
1. Использовать SQL DDL для создания/изменения таблиц в рантайме. Создавать таблицы, триггеры, ключи, таблицы с историей и т.д.

Использовался этот подход. Правда пользователи не имеют доступ к изменению справочников, это делали программисты и администраторв готовых систем. Вкратце, добавлялся новый тип справочника (документа) в репозиторий, описывались параметры (поля) справочника (тип, наименование, значения по умолчанию и пр). Описывались связи между полями.

Потом нажималась кнопка, которая создавала таблицы, поля, компилила автоматом процедуры по внесению, изменению, просмотру справочника. Триггера и связи БД не использовались. Вся логика зашивалась в процедуры.

При компиляции определялась целевая БД и синтаксис процедур генерился в зависимости от синтаксиса SQL диалекта.

Оказалась достаточно удобная схема позволяющая разрабатывать и внедрять продукты достаточно быстро. Но в отличии от подхода с одной универсальной таблицей проще синтаксис для отчетов и выше производительность.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400174
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Estets vinniPooh
Есть два варианта решения:
1. Использовать SQL DDL для создания/изменения таблиц в рантайме. Создавать таблицы, триггеры, ключи, таблицы с историей и т.д.

Использовался этот подход. Правда пользователи не имеют доступ к изменению справочников, это делали программисты и администраторв готовых систем. Вкратце, добавлялся новый тип справочника (документа) в репозиторий, описывались параметры (поля) справочника (тип, наименование, значения по умолчанию и пр). Описывались связи между полями.

Потом нажималась кнопка, которая создавала таблицы, поля, компилила автоматом процедуры по внесению, изменению, просмотру справочника. Триггера и связи БД не использовались. Вся логика зашивалась в процедуры.

При компиляции определялась целевая БД и синтаксис процедур генерился в зависимости от синтаксиса SQL диалекта.

Оказалась достаточно удобная схема позволяющая разрабатывать и внедрять продукты достаточно быстро. Но в отличии от подхода с одной универсальной таблицей проще синтаксис для отчетов и выше производительность.

Очень интересно.
А сколько времени разрабатывалась система?
Могла ли структура таблицы изменятся после создаиня в рантайме?
Были ли проблемы с откатом изменений таблиц?
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400787
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблем с откатом не может не быть. При откате меняется часть логики и она может не соответствовать общей инф. модели.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400892
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оправдала себя на практике система справочников, принятая в БАС .

Все справочники в одной таблице. В общем, все они содержат относительно не много записей, поэтому эта таблица не растет на столько, что бы заметно было при выборках данных.
Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников.
Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы.
Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса.
Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы.

Вот так выглядит настройка справочника:
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400935
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PVP
Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников.
Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы.
Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса.
Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы.


Одно из решений, которое я, возможно, буду использовать - это статичная структура таблиц. Сейчас я предполагаю использование 5-ти таблиц. (Справочник, Запись, Поле, Значение, Тип).
Если я понимаю, твоя таблица хранит деревья. Справочник является корнем дерева, поля - его ветвями, значения - листвой. Так ли это?
Не возникает ли проблем с проходом по всему дереву (справочнику) для выбора небольшого количества полей?
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400939
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PVP
Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников.
Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы.
Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса.
Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы.

Расскажи плиз как устроена твоя таблица.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400952
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vinniPoohОдно из решений, которое я, возможно, буду использовать - это статичная структура таблиц. Сейчас я предполагаю использование 5-ти таблиц. (Справочник, Запись, Поле, Значение, Тип).На мой взгляд, это перебор в статичности. В БАС таблица, содержащая данные, условно статическая. Т.е. во время работы она статическая. При настройке, если в какой либо справочник добавляется такое поле, которого еще нет ни в одном справочнике, то структура таблицы меняется системными средствами - в нее добавляется новое поле. Есть некоторая избыточность. Но это не страшно, так как в общем объеме базы данных эта таблица пренебрежительно мала.

vinniPoohЕсли я понимаю, твоя таблица хранит деревья. Справочник является корнем дерева, поля - его ветвями, значения - листвой. Так ли это?
Да обычная таблица. Нужны деревья, помещай поля "Код вершины" и "Код источника" и работай с деревьями. А вообще, в самом начале разработки была допущена ошибка постановки, и работа с деревьями вынесена в отдельный модуль. Хотя ничего не мешает работать с древовидными справочниками в одщей системе.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400958
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vinniPoohРасскажи плиз как устроена твоя таблица.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400960
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибся. Предыдущий рисунок под руку попался.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400963
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица SSprLst - список спраовочников.
SSprGrup - друвовидная структура справочников
SSprVar - имена полей, входящих в справочник с их свойствами.
SSprData - данные всех справочников. До поля Pr_Str_Table - поля системные. За этим полем - набираются динамически при настройке по мере включения в них разных параметров.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33400967
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остальные таблицы общие для всей системы. Они используются для управления структурой других рабочих таблиц. Их еще несколько - операции, лицевые счета, и еще пара, которые уже практически не используются.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33401030
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PVPОстальные таблицы общие для всей системы. Они используются для управления структурой других рабочих таблиц. Их еще несколько - операции, лицевые счета, и еще пара, которые уже практически не используются.

Примерно так я это и представлял. Но мне бы не хотелось связываться с модификацией таблицы и потом - с избыточностью полей. Я предпочитаю внести еще один уровень - таблицу Значение, которая ссылается на таблицу Поле. Это избавляет от избыточности, но усложняет запросы.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33401042
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vinniPoohНо мне бы не хотелось связываться с модификацией таблицы и потом - с избыточностью полей. Я предпочитаю внести еще один уровень - таблицу Значение, которая ссылается на таблицу Поле. Это избавляет от избыточности, но усложняет запросы.Усложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда.

На счет избыточности. Допустим она равна 100%. Это приведет к тому, что таблица со справочными данными будет, грубо говоря, в два раза больше по объему. Вопрос - как увеличится размер все базы данных в целом? Ответ - он не изменится. Т.к. в серьезной работающей системе Вы будете оценивать размер до 1 ГБ. Вряд ли, точнее.

К тому, же на практике, если работать аккуратно с полями, то избыточность на самом деле не большая. Одно и то же поле, например K01, в может использоваться в разных справочниках и при этом иметь совершенно различный смылс.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33401043
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PVPУсложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда. А может и не пол беды, а больше. Если делать программу для продажи, то сложные запросы отобьют охоту у внедренцев работать с такой системой.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33402716
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PVPВсе справочники в одной таблице. В общем, все они содержат относительно не много записей, поэтому эта таблица не растет на столько, что бы заметно было при выборках данных.
доводилось сталкиваться с таким подходом и есть замечания:
1. Как быть с внешними ключами? Если в большой таблице есть записи из нескольких справочников, то как на уровне СУБД ограничить ввод в таблицу данных значений из конкретного справочника? Можно конечно ставить диапазон, но будут проблемы с добавлением значений. Можно во внешний ключ ввести ещё дополнительное поле, но тоже как-то имхо некрасиво.
2. Засорение базы сотней мелких таблиц - это конечно плохо, но есть и плюс - все таблицы имеют свои собственные имена и их можно предсказать при переносе между системами. А в Вашем подходе какое имя будет у справочника если Вы его передадите в стороннюю систему?

Вобщем то оба эти замечания скорее религиозные (эмоциональные) чем технические и речь идёт о некой абстрактной красоте системы, но лично мне кажется, что красоту можно считать косвенным показателем качества
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33402723
vinniPooh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PVP PVPУсложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда. А может и не пол беды, а больше. Если делать программу для продажи, то сложные запросы отобьют охоту у внедренцев работать с такой системой.
Справочники, по идее, не сильно затормозят работу системы, ведь обращения к ним происходят достаточно редко, а отчеты по ним вообще не строятся.
Насчет внедренцев - это скорее у программистов охота отобъется, так как они будут упрятывать запросы так, что их нигде не будет видно.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33402868
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vinniPooh
Очень интересно.
А сколько времени разрабатывалась система?
Могла ли структура таблицы изменятся после создаиня в рантайме?
Были ли проблемы с откатом изменений таблиц?
Так называемое "Ядро документооборота" включающее собственно сам документооборот, модуль счетов-проводок и разработка тонкого клиента потребовал где-то 2 человеко-года.

Что значит "изменятся после создания" если администратор удалил поле в таблице, или сменил его тип и не отразил изменение в репозитории, то он сам себе "злобный буратино" хранимые процедуры по работе с этим документом не скомпилятся или будут некорректно работать.

Откатов как таковых нет ;) соответственно нет и проблем с ними, если администратор удалил параметр документа, то это отразится на ХП, но физически поле в таблице останется.
...
Рейтинг: 0 / 0
Непостоянное число справочников с редактируемыми числом и типом полей
    #33402903
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
стоит пожалуй более конкретно написать что не нравится в этом подходе,
а точнее попробую указать на несостоятельность преимуществ
PVP
Огромное преимущество - не засоряется база данных мелкими таблицами.
Например, только в одной Зарплате более сотни разных справочников.

в чём трудность хранения в базе 100-150 дополнительных таблиц, если не считать затрат на придумывание имён для этих таблиц? с именами конечно есть проблемы, но они достаточно легко разруливаются системными соглашениями.
PVP
Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы.

если в ТЗ на систему сразу стоит ограничение типа "должна быть возможность добавления новых справочников и создания документов, имеющих ссылки на эти справочники", то все перечисленные трудности не зависят от выбранного подхода. Выполнение одного CREATE TABLE никак не проблемнее чем INSERT INTO bigtable... и будет "возня с исходными текстами" или нет тоже лежит целиком на совести разработчика.
PVP
Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса.

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

Вот тут поподробнее, пожалуйста - как функция ввода может совпадать с функцией выбора?! Вероятно имеется в виду некая функция пользовательского интерфейса, но это тоже детали...

Вобщем итоговое ИМХО - трудности, связанные с неоднозначностью интерпретации значения из большого мега-справочника, а именно ответ на вопрос "Какому под-справочнику принадлежит значение с кодом ХХХХ?", на мой взгляд перевешивают призрачные приимущества, которые указаны в качестве плюсов данного подхода.
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Непостоянное число справочников с редактируемыми числом и типом полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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