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

start [/forum/topic.php?fid=32&fpage=99&tid=1543695]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 350ms |

| 0 / 0 |
