|
|
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
Вот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это т.е. Т.е. что-то аналог в 1С - создаются некоторое подобие папок, в них кладётся номенклатура, а в папке можно ещё создать папку, чтобы ещё туда что-нибдь положить.... итак до бесконечности... вот думаю каким образом можно исполнить подобное в реляционной структуре... Пока вариант один вертится в голове... сделать хранимую процедуру, а в ней уже заложить создание дополнительной таблицы с внешним ключом на предыдущую.... А ещё можно сосздать обычную таблицу в которой будет дополнительный столбец, в котором будет указан id-шник родительской сторки... а потом прогой пройтись по этой таблице и сгенерировать дерево... Кто что скажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 20:03 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
Поищите по ключевому слову EAV. p/s/ Прежде чем применять эту модель очень хорошо все взвесте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 01:34 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
В 1с 7.7 при конфигурировании задавалась максимальная глубина иерархии - это к тому что реализовать красиво и для любой вложенности трудно. С точки зрения пользователей - лазить по папкам можно если глубина=1. Если 2 и больше - то ситуация когда в ящичке 10 шкатулочек, в каждой шкатулочке 10 коробочек, в каждой коробочке 10 папочек и пойди найди тот ножичек. Юсеры тогда отключают иерархию и работают напрямую (в 1с это возможно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 01:41 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
apapacyВ 1с 7.7 при конфигурировании задавалась максимальная глубина иерархии - это к тому что реализовать красиво и для любой вложенности трудно. С точки зрения пользователей - лазить по папкам можно если глубина=1. Если 2 и больше - то ситуация когда в ящичке 10 шкатулочек, в каждой шкатулочке 10 коробочек, в каждой коробочке 10 папочек и пойди найди тот ножичек. Юсеры тогда отключают иерархию и работают напрямую (в 1с это возможно). В 1С 7.7 она задавалась, но использовалась только на уровне приложения, на базе это никак не сказывается. То есть если мы меняем количество вложенностей структура базы не меняется. И это "исправили" в 8 версии, там можно указывать также неограниченную вложенность. При большой вложенности "лазить" по папкам скорее всего не будут, хотя бывает и удобно поискать иерархически. Основная фича в другом. Когда выбираете в некотором отчете движений товара не элемент а папку-группу, то отчет формирует движение всех товаров в этой группе, не важно сколь сложная иерархия. При этом можно с учетом подпапок (итоги по ним) или без. Вот тут интересно подумать о структуре, чтобы можно было писать такие запросы. А в 1С там устроено все просто: поле-указатель на родителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 09:25 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
DSFCВот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это Стандартный подход: таблица номенклатуры какой-нибудь + произвольное количество иерархических классификаторв над ней. Все задается пользователем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 10:49 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
DSFCвот думаю каким образом можно исполнить подобное в реляционной структуре... Все можно решить в одной таблице Таблица 1IDНазваниеПринадлежитТип Принадлежит - содержит ID "родительского" элемента Тип - определяет элемент это или папка (можно и не использовать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 10:50 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
krvsa DSFCвот думаю каким образом можно исполнить подобное в реляционной структуре... Все можно решить в одной таблице Таблица 1IDНазваниеПринадлежитТип Принадлежит - содержит ID "родительского" элемента Тип - определяет элемент это или папка (можно и не использовать) Тут есть один тонкий момент. Все зависит от качественного содержания иерархии. Если это иерархия наподобие папок в винде, то такой подход годится. А возможен случай, когда одно дерево представляет иерархии двух и более качеств (это плохо и не всегда очевидно на начальных этапах анализа), или вообще не является иерархией. Например, есть "иерархия" предприятий. "Предприятия розничной торговли" - Предприятие 1 - Предприятие 2 - Предприятие 3 - "Магазины" - - магазин 1 - - магазин 2 "Предприятия легкой промышленности" - Предприятие 4 - Предприятие 5 - - Филиал 51 - - Филиал 52 В этом дереве есть вершины двух качеств "общность" ("Магазины") и "составная" (Предприятие 5). Если человек работает на предприятии, относящемся к общности "Магазины", то он работает либо в магазин 1, либо в магазин 2. Если человек работает на Предприятии 5, то это совсем не значит, что он работает в филиале этого предприятия. Подобных примеров можно привести много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 18:25 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
krvsaВсе можно решить в одной таблице Низзя. Таблиц д.б. мин 2 - собственно номенклатура + классификаторы (м.б. в одной таблице). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 09:48 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
kmawПодобных примеров можно привести много. Список филиалов - это св-во сущности Предприятие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 09:49 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
kmawТут есть один тонкий момент. что-то я его так и не понял... Поскольку приведенный тобой пример запросто описывается моей табличкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 12:37 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
_модТаблиц д.б. мин 2 - собственно номенклатура + классификаторы (м.б. в одной таблице). Про классификаторы автор не писал... Разговор изначально шел про описание иерархии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 12:41 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
DSFCсоздаются некоторое подобие папок, в них кладётся номенклатура, а в папке можно ещё создать папку, чтобы ещё туда что-нибдь положить.... итак до бесконечности... Вот же его вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 12:43 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
krvsaПро классификаторы автор не писал... Разговор изначально шел про описание иерархии. Дословно: DSFCВот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это Между элементами номенклатуры иерархии нет, она вся зашита в классификаторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 15:11 |
|
||
|
Эмуляция иерархии
|
|||
|---|---|---|---|
|
#18+
Так моя табличка все и классифицирует. Как вариант - добавьте в нее ссылку на ID элемента номенклатуры... ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 15:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35204939&tid=1543969]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 400ms |

| 0 / 0 |
