
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.08.2008, 18:22
|
|||
|---|---|---|---|
|
|||
древовидная структура |
|||
|
#18+
добрый день. есть список категорий(категории, подкатегории). например: Продукты -мясные --колбасы --котлеты --... -овощи --помидоры ---спелые ---не очень спелые ----дорогие Каждая категория может содержать любое количество подкатегорий. Так же есть товары, которые относятся только к 1 категории(могут к самой верхней, могут к самой нижней). Нужно создать программу которая будет строить дерево с помощью элемента treeView. но как построить - не проблема. Нужно хранить данные так, чтобы было легко выбирать с любого уровня:например: "все помидоры". Кроме того, нужно реализовать добавление категории и при этом не переписывать код запросов. Моя версия такова:делаем список категорий вида: id; name. в каждом товаре прописываам catid(ид категории). в еще одну таблицу добавляем пары вида: parent;child (ближайший корень и непосредственный наследник). Но теперь остаеца вопрос как сделать простые запросы для выбора больших категорий(не листовых)? Модератор: Проблема не относится к С++ никак, поэтому переносим в "проектирование БД". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2008, 19:27
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
а вот моя версия: 3 таблицы: 1)категории id_cat name 2)товар: id_tovar name 3)соответствия категории товарам(или наоборот): id_cat id_tovar так и запросы строить легче и данные искать ... например нужно узнать как там с помидорами, а потом подробнее как у них со спелыми :) ну как вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2008, 19:29
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
а тьфу блин не товар а продукты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.08.2008, 10:25
|
|||
|---|---|---|---|
|
|||
древовидная структура |
|||
|
#18+
как тогда строить дерево? опять же нужна таблица соотношения категорий. и как по ней выбирать большие группы, без большого кол-ва запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.08.2008, 10:46
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
Лучше так: Categoryidparent_idnametype_id Typeidname ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.08.2008, 14:29
|
|||
|---|---|---|---|
|
|||
древовидная структура |
|||
|
#18+
спасибо за перенос, на самом деле подразумевалось написание на с++ поэтому и постил туда mayton , а как тогда строить дерево категорий? и как выполнить выбор "Больших" категорий(ближних к корню) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.08.2008, 01:37
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
Лес деревьев, товары - листья в этом лесу. Одна таблица : ID Parent_ID Name Это на тот случай если надо часто удалять/добавлять категории, т.е. менять структуру леса. Если же нужно часто и быстро делать делать выборки поддеревьев то для этого есть другие реализации с явным хранением уровня вложенности и/или полного пути к категории/товару. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.08.2008, 10:26
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
ineedhelp mayton , а как тогда строить дерево категорий? и как выполнить выбор "Больших" категорий(ближних к корню) Вы хотите, чтобы я вам сейчас написал запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.08.2008, 20:22
|
|||
|---|---|---|---|
|
|||
древовидная структура |
|||
|
#18+
alexmspЛес деревьев, товары - листья в этом лесу. Одна таблица : ID Parent_ID Name Это на тот случай если надо часто удалять/добавлять категории, т.е. менять структуру леса. Если же нужно часто и быстро делать делать выборки поддеревьев то для этого есть другие реализации с явным хранением уровня вложенности и/или полного пути к категории/товару. у меня предполагается редкое изменение структуры деревьев, и частое выборка/изменения товаров(листьев) maytonВы хотите, чтобы я вам сейчас написал запрос? если не затруднит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.08.2008, 20:24
|
|||
|---|---|---|---|
|
|||
древовидная структура |
|||
|
#18+
type_id и что такое это поле значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.08.2008, 21:31
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
ineedhelp maytonВы хотите, чтобы я вам сейчас написал запрос? если не затруднит Я предложил идею. И предоставляю её тебе рассмотреть со всех сторон. На мой взгляд модель из двух таблиц самодостаточна и нормализована ровно настолько, насколько нужно. А учить тебя писать иерархические запросы я не буду. Всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.08.2008, 18:44
|
|||
|---|---|---|---|
древовидная структура |
|||
|
#18+
ИМХО разбивать на 2 таблицы есть смысл если один и тот же товар или категория может содержаться сразу в нескольких вышестоящих категориях. Элементы иерархии ID Name IsCategory (True если категория, False если товар) Соотношения между элементами ID IsLeaf (листок если True) Path (путь доступа) или ID Parent_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1543695]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 464ms |

| 0 / 0 |
