Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Многоуровневая группировка данных   Найти похожие ветки 

 
chtr ©   (2004-01-06 13:22) [0]

Добрый день.
Делаю структуру БД. Надо создать базу товаров с неограниченным количеством уровней группировки. Родился такой вариант:

Таблица details:
id - счетчик
grpid - группа
name - наименование

Таблица grp:
id - счетчик
up - верхний уровень
name - название группы

Но как потом с этим работать? Через TreeView? Может есть готовые компоненты. Или структура должна быть другая?
(Институтов не кончал, книжек не читал :) а надо срочно)


 
Vlad ©   (2004-01-06 13:41) [1]


> chtr © (06.01.04 13:22)

Только зачем использовать две таблицы? Достаточно одной.
id | grp_id | name

TreeView строится с помощью несложной рекурсивной процедуры.


 
Рамиль ©   (2004-01-06 13:41) [2]

Таблица details:
id - счетчик
name - наименование

Таблица Groups
id
PDetails - ссылка на id таблицы details
PGrp - ссылка на id таблицы grp

Таблица grp:
id - счетчик
name - название группы

> (Институтов не кончал, книжек не читал :) а надо срочно)

А вот это сложно...


 
chtr ©   (2004-01-06 13:49) [3]


> Рамиль © (06.01.04 13:41) [2]

По моему неоправданное усложнение?

Значит готовых компонентов нет :(


 
Vlad ©   (2004-01-06 13:56) [4]

Есть. TDBTreeView на Torry.net - $35


 
Рамиль ©   (2004-01-06 13:57) [5]


> По моему неоправданное усложнение?

Если группы строго иерархичны, то может быть. А если есть группы одного уровня и несколько на одну мат ценность?


 
chtr ©   (2004-01-06 14:02) [6]


> А если есть группы одного уровня и несколько на одну мат
> ценность?

Не мой случай. Все равно спасибо.

2 Vlad отдельное спасибо.


 
Vlad ©   (2004-01-06 14:18) [7]

Есть хорошая статья по поводу древовидного хранения данных

http://sdm.viptop.ru/articles/sqltrees.html


 
jeka_t   (2004-01-16 10:12) [8]

Vlad, Подскажи пожалуйста рекурсивную процедуру для постройки дерева.


 
Vlad ©   (2004-01-16 10:25) [9]


> jeka_t (16.01.04 10:12) [8]

А чего подсказывать ? Обычную процедуру построения дерева можешь написать ? А рекурсивная - тоже самое, только вызывает сама себя до тех пор, пока не кончатся вложенные Nodes


 
Academic ©   (2004-01-16 10:52) [10]

Если информации много, то дерево я строю по мере открытия узлов.
Идея не нова но дает хорошие результаты. А ссылки на базу, можно хранить в TTreeNide.Data


 
Digitman ©   (2004-01-16 11:45) [11]


> chtr © (06.01.04 13:22)


id - счетчик (первичный ключ)

rootid - корневая группа (необязательно, нужно для обеспечения уникальности атрибутов узла, для корневого узла = Id)

level - уровень группировки узла, начиная от корня (необязательно, для быстрого поиска и доступа)

parentid - родительсткая группа (для корневого узла = Null)

what - признак принадлежности данного узла (подгруппа или деталь)

name - наименование

additional_info - дополнительные атрибуты узла (если необходимо, могут фигурировать в уникальной идентификации узла по совокупности его доп.атрибутов)


 
HSolo ©   (2004-01-16 12:45) [12]

http://delphi.vitpc.com/helloworld/dbtreeview.htm



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
4-16826
Ptr
2003-11-26 17:50
2004.02.06
Как узнать, сколько экранных точек в сантиметре?


1-16390
vlv
2004-01-23 13:17
2004.02.06
Как преобразовать scan-код клавиши в символ?


14-16669
syte_ser78
2004-01-17 15:03
2004.02.06
Siemens A50


3-16090
dilp
2004-01-11 03:36
2004.02.06
runtime определение поля как lookup ?


3-16068
Cerber
2004-01-10 20:15
2004.02.06
Локалки против Клиент серверов