Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте структуру данных для иерархии групп / 6 сообщений из 6, страница 1 из 1
23.07.2010, 14:32
    #36756608
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Нужно организовать справочник групп, который выглядит примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Легковые
    Колеса
    Кузов
    Фары
Грузовые
    Средние
        Колеса
        Кузов
        Фары
        Прицепы
    Тяжелые
        Колеса
        Кузов
        Фары
        Прицепы
Автобусы
    Колеса
    Фары
Т.е. элемент может входить в разные группы одновременно, при этом располагаться на произвольном уровне иерархии.

Сейчас для реализации такой структуры используется две таблицы:
GROUP_LIST (ID, NAME)
GROUP_TREE (GROUP_ID, PARENT_ID, POSITION, ROOT_ID)

POSITION указывает номер позиции в текущей родительской группе (для произвольного порядка групп), ROOT_ID указывает на корневой элемент дерева (для более простого построения дерева).

Посоветуйте, можно ли сделать лучше?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
23.07.2010, 16:04
    #36756891
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Alibek B.Посоветуйте, можно ли сделать лучше?
Враг хорошего - еще лучшее. (с)
...
Рейтинг: 0 / 0
23.07.2010, 16:54
    #36757037
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Зря вы так, Колеса для тяжелых грузовиков и Колеса для средних грузовиков это все таки две различные сущности
...
Рейтинг: 0 / 0
23.07.2010, 21:52
    #36757400
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Naf , но колёсами от этого они быть не перестали...
...
Рейтинг: 0 / 0
23.07.2010, 22:08
    #36757411
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Alibek B.Нужно организовать справочник групп, который выглядит примерно так:Непонятно, что означает "справочник групп". В дерево-то все это можно уложить, но будет ли удобно и будет ли обеспечивать согласованность данных - вот в чем вопрос.
...
Рейтинг: 0 / 0
23.07.2010, 22:46
    #36757442
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте структуру данных для иерархии групп
Вообщем, разобрался.
Я сам себя запутал.
По сути, мне нужен самый обычный иерархический справочник типа ID-ParentID-Name. Только вместо Name будет не значение, а ссылка на запись в плоском справочнике прототипов групп.

Т.е. такая схема решает все вопросы:

GROUPS_LIST (GROUP_ID, NAME)
GROUPS_TREE (TREE_ID, PARENT_ID, POSITION, GROUP_ID)
PARTS (PART_ID, CODE, NAME, ... )
PARTS_GROUPS (PART_ID, TREE_ID)

Таблица GROUPS_LIST — справочник прототипов групп, GROUPS_TREE — реальный справочник групп, PARTS — таблица сущностей, PARTS_GROUPS — таблица связей, определяющих принадлежность сущности к группам.

NafЗря вы так, Колеса для тяжелых грузовиков и Колеса для средних грузовиков это все таки две различные сущностин

Поскольку привязка идет не к GROUP_ID, а к TREE_ID, то никакой путаницы не будет.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте структуру данных для иерархии групп / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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