Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
Есть мысль создать классификатор регионов деятельности компании в виде дерева (хранимого в одной таблице - первичный ключ, ссылка на родителя, наименование и т.п.) Обосновывается это тем, что с коммерческой точки зрения может понадобиться не просто завести таблицу стран, таблицу городов и т.д., а отразить не официальное административно-территориальное деление, а умозрительное - например, определенные города нужно поделить на районы, а некоторые страны вообще интересны укрупненно - Западная Европа, например. Контрагент будет соотноситься только с одной записью из такого классификатора. Отчетность будет детализирована до заданного наперед уровня, или до уровня связи с контрагентами. Вопросы: использовали ли кто-нибудь подобное на практике? если использовали, то есть ли смысл вводить типы регионов (страна, область, район и т.п. - ведь реально такой классификатор и до квартир может быть детализирован). Для каких классификаторов вообще применялись деревья? Например, для товаров я не вижу в этом смысла. Кто-то здесь предлагал классифицировать так контрагентов - типа объединять их по-разному в холдинги и т.д., это мне тоже не нравится в общем-то (хотя если заводить таблицу контрагентов как таковых, а потом расшифровывать их с помощью таблиц физлиц, юрлиц и т.д., то структура становится поинтереснее и дерево контрагентов может быть оправданным решением). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 10:08 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
Можно и так. Все зависит от задачи. Ради "просто попробовать" я бы наверное не стал этим заниматься в реальном проекте. Надо помнить, что деревянные данные несколько труднее и затратнее обычных в использовании. Хорошо, если сервак поддерживает деревья (например Оракл). Иначе придется писать спецпроцедуры выборки - если их много - геморойно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 10:18 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
С контрагентами целая история, рекомендую сходить на форум ERp-системы, а то опять одно и тоже будем перетирать. Я использую иерахические классификаторы для работы так:дерево классификаторов - таблица связи с необходимой сущностью (код записи классификатора-код записи интересующего меня объекта)-таблица классифицируемых объектов.Предметная область-ценные бумаги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 10:22 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
DogenЕсть мысль создать классификатор регионов деятельности компании в виде дерева (хранимого в одной таблице - первичный ключ, ссылка на родителя, наименование и т.п.) Обосновывается это тем, что с коммерческой точки зрения может понадобиться не просто завести таблицу стран, таблицу городов и т.д., а отразить не официальное административно-территориальное деление, а умозрительное - например, определенные города нужно поделить на районы, а некоторые страны вообще интересны укрупненно - Западная Европа, например. Контрагент будет соотноситься только с одной записью из такого классификатора. Отчетность будет детализирована до заданного наперед уровня, или до уровня связи с контрагентами. Мысль здравая и полезная. Именно сейчас и делаю такой справочник. Данные о регионах всасываю из КЛАДР, с некоторой предварительной обработкой. Детализацию лучше проводить до уровня населенного пункта (района города). Улицы лучше держать отдельно. Dogen Вопросы: использовали ли кто-нибудь подобное на практике? если использовали, то есть ли смысл вводить типы регионов (страна, область, район и т.п. - ведь реально такой классификатор и до квартир может быть детализирован). До квартир не стоит, если захочешь посмотреть "ВСЁ" - начнутся тормоза (опробовано до уровня улиц). Dogen Для каких классификаторов вообще применялись деревья? Например, для товаров я не вижу в этом смысла. Кто-то здесь предлагал классифицировать так контрагентов - типа объединять их по-разному в холдинги и т.д., это мне тоже не нравится в общем-то (хотя если заводить таблицу контрагентов как таковых, а потом расшифровывать их с помощью таблиц физлиц, юрлиц и т.д., то структура становится поинтереснее и дерево контрагентов может быть оправданным решением). Теоретиячески деревья можно применить к любому иерархическому классификатору, даже к плоским справочникам, объединив их в один. Все дело в том, как ты их объединишь и как в дальнейшем будешь проектировать базу данных. Работать с иерархическими классификаторами - задача не из легких, хотя выгоды, получаемые от их использования, значительные. 1. Возможность создания нового справочника (классификатора) без создания таблицы. 2. Использование ссылок на разные типы данных (стороннее предприятие, собственный цех, склад, сотрудник). 3. Используя ссылочные таблицы можно расположить объекты в зависимости от их принадлежности к той или иной иерархии. И еще очень много вкусностей. Но, еще раз повторю, работать с иерархиями сложно, там своя специфика. Особенно при объединении всех справочников в один. Требуется тщательное проектирование зависимых структур базы данных. И еще один момент. Очень хорошо работает с иерархиями Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 12:41 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
JinnРаботать с иерархическими классификаторами - задача не из легких, хотя выгоды, получаемые от их использования, значительные. 1. Возможность создания нового справочника (классификатора) без создания таблицы. 2. Использование ссылок на разные типы данных (стороннее предприятие, собственный цех, склад, сотрудник). 3. Используя ссылочные таблицы можно расположить объекты в зависимости от их принадлежности к той или иной иерархии. И еще очень много вкусностей. Но, еще раз повторю, работать с иерархиями сложно, там своя специфика. Особенно при объединении всех справочников в один. Требуется тщательное проектирование зависимых структур базы данных. И еще один момент. Очень хорошо работает с иерархиями Oracle. Иерархическая классификация может выглядеть как группа_товаров-товар и т.д. (т.е. просто несколько таблиц). Я же говорю про заранее неизвестное количество уровней, и более того, про возможность наличия в дереве веток разной длины. Я подразумеваю, что в описанном мной классификаторе пропадает знание о том, страна это, город это или улица. Это все - "регион деятельности", и регион может содержать подчиненные ему регионы. Причем это может быть легко переструктурировано, детализировано с введением еще одного уровня или наоборот, обобщено. Так что зависимые структуры проектировать легко :) Просто иметь в них ссылку на регион. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 13:23 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
Dogen Я же говорю про заранее неизвестное количество уровней, и более того, про возможность наличия в дереве веток разной длины. "Три китайца под окном пели оба об одном" Иерархия такое представление и пдразумевает. Это просто как дерево Dogen Так что зависимые структуры проектировать легко :) Просто иметь в них ссылку на регион. Блажен кто верует ... В примитивном случае использовать иерархический список легко. Сложнее управление этим списком, исключение дублей, контекстный поиск и еще несколько моментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 15:08 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
Jinn Dogen Я же говорю про заранее неизвестное количество уровней, и более того, про возможность наличия в дереве веток разной длины. "Три китайца под окном пели оба об одном" Иерархия такое представление и пдразумевает. Это просто как дерево Dogen Так что зависимые структуры проектировать легко :) Просто иметь в них ссылку на регион. Блажен кто верует ... В примитивном случае использовать иерархический список легко. Сложнее управление этим списком, исключение дублей, контекстный поиск и еще несколько моментов. Дык две связанных 1:n таблицы тоже иерархия. Каких дублей? Какие вообще проблемы если это таблица из трех колонок??? 1. Че подразумевается под дублем? 2. Че означает в данном контексте словосочетание "контекстный поиск"? 3. Какие все же моменты? Вот как исключить кольца в такой таблице, это было бы интереснее узнать. Хотя тоже фиг там проверять. Вообще тут много определится интерфейсом ввода. Дерево документов системы документооборота я уже делал, так что не первый раз замужем. Интересуюсь концептуальными тонкостями, однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 15:30 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
Недостаток деревянности : сложность реализации мощного интерфейса редактирования/добавления/сортировки/поиска. Ведь для каждой таблицы придётся сделать такой интерфейс. Хотя недостаток компенсируется уникальными возможностями по построению отчётности. Что для Вас важнее - выбирать Вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 12:08 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
LSVНедостаток деревянности : сложность реализации мощного интерфейса редактирования/добавления/сортировки/поиска. Ведь для каждой таблицы придётся сделать такой интерфейс. Хотя недостаток компенсируется уникальными возможностями по построению отчётности. Что для Вас важнее - выбирать Вам. Имея стандартную структуру данных в любой таблице, несложно показывать их в дереве. Но мне это не надо, я про единственный классификатор говорю. Интерфейс редактирования - ну например драг энд дроп в Swing уже запрограммирован, и перестроить структуру дерева не очень сложно. Сортировка в дереве - дело другое, но ее можно при построении дерева обеспечить без труда. Поиск - аналогично. Так что получаем только пользу и некоторое опасение, что юзеры изгадят любую идею. В общем-то планировалось использовать дерево регионов исключительно для группировки данных в отчетах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 13:27 |
|
||
|
О пользе деревянных классификаторов.
|
|||
|---|---|---|---|
|
#18+
DogenДык две связанных 1:n таблицы тоже иерархия. Каких дублей? Какие вообще проблемы если это таблица из трех колонок??? Вы рассматриваете простейший случай использования иерархической структуры - таблицу из трех полей, хотя в иерархическую структуру можно уложить все справочники. Дубли. При таком хранении неизбежно возникнут одинаковые наименования разных объектов. И даже не по вине оператора, а по причине нахождения этих объектов в разных ветвях дерева. Например населенный пнкт "Москва" встречается в справочнике регионов 4 раза Про населенный пункт "Сортировочный" и говорить не стоит. Еще момент: "Санкт-Петербург", "СПб", "Питер" и т.п. - это название одного и того же населенного пункта. Как контролировать? Про регистры вообще лучше промолчать. А эту проблему мне пришлось решить. Dogen 1. Че подразумевается под дублем? 2. Че означает в данном контексте словосочетание "контекстный поиск"? 3. Какие все же моменты? Контекстный поиск - поиск всего или части текста по условию. Моментов еще много. При количестве записей > 300000 вывод всего дерева начинает подтормаживать несмотря на индексы и прочие оптимизаторы. Dogen Вот как исключить кольца в такой таблице, это было бы интереснее узнать. Хотя тоже фиг там проверять. Вообще тут много определится интерфейсом ввода. С петлей, конечно, могут быть проблемы, но они разрешаемы проверкой. Хотя бы периодической или после ввода новых данных. А интерфейс ... Не столь сложно его сделать. Это уже зависит от программера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 18:45 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32879665&tid=1546088]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 466ms |

| 0 / 0 |
