powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше
15 сообщений из 15, страница 1 из 1
Посоветуйте как лучше
    #38794815
indusij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер! Помогите пожалуйста новичку. Как мне Правильней сделать - Бытовая техника , Аудио-видео техника, а также подпункты(Крупная бытовая техника, Мелкая бытовая техника) сделать как отдельные справочники ? если планируется обновление ассортимента...

--Бытовая техника
----Крупная бытовая техника
--------Холодильники
--------Стиральные машины
--------Посудомоечные машины
----Мелкая бытовая техника
--------Утюги
--------Электрочайники
--Аудио-видео техника
----Телевизоры
--------LCD
--------Плазменные
----DVD-проигрыватели
----Музыкальные центры
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794818
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indusijсделать как отдельные справочники ?
Нет, это одно дерево ассортимента.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794819
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indusij, все делается одним справочником

Таблица CATEGORIES
CODE - первичный ключ
NAME - название
MASTERCODE - код родителя

Твои записи
1 "Бытовая техника" null
2 "Крупная бытовая технка" 1
3 "Холодильники" 2
4 "Стиральные машины" 2
5 "Мелкая бытовая техника" 1
6 "Утюги" 5
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794820
indusij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, Спасибо. А если нужно будет название категории отредактировать?
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794821
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глубина вложений фиксированна?
Если "да" - то все тупо и весело
create table cat_level1 (id primary key, name)
create table cat_level2 (id primary key, cat_level1_id references cat_level1, name)
create table cat_level3 (id primary key, cat_level2_id references cat_level2, name)
Вместе собирается простым джойном

если "нет", то гуглите по слову "Деревья в SQL", решений больше одного, у всех есть свои достоинтва и недостатки.

И к слову - неограниченная вложенность звучит круто, но на практике после седьмого где-то уровня уже надоедает.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794822
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indusij,
я читал, что на этот случай есть sql-команда "update"
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794823
indusij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, Спасибо) Это я не на то посмотрел)))
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38794824
indusij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, Спасибо за ответ! Буду читать)
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795038
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257И к слову - неограниченная вложенность звучит круто, но на практике после седьмого где-то уровня уже надоедает.

С другой стороны - при ограниченной вложенности гибкость меньше. Добавление нового уровня вложенности ведет к лишним телодвижениям.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795114
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Глубина вложений фиксированна?
Если "да" - то все тупо и весело
create table cat_level1 (id primary key, name)
create table cat_level2 (id primary key, cat_level1_id references cat_level1, name)
create table cat_level3 (id primary key, cat_level2_id references cat_level2, name)

Какие преимущества у этой схемы по сравнению с одной таблицей-деревом?
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795142
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинКакие преимущества у этой схемы по сравнению с одной таблицей-деревом?
В основном - упрощённая возможность навешать на разные уровни какие-то уникальные для них дополнительные атрибуты, ограничения итп.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795338
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин Какие преимущества у этой схемы по сравнению с одной таблицей-деревом? Если одним словом то она проще
Линейные джойны проще серверу для постоить план, проще отлаживать программисту.
Плюс иерархические запросы по разному реализуются в разных СУБД.
Будя мы захотим денормализовать, в случае с одной таблицей мы будем хранить полный путь и использовать строковые фунции, в случае отдельных таблиц это будут честные поля с честным FK.

Все известные мне иерархии (от президента до уборщицы) имели очень небольшую вложенность, которую можно посчитать на пальцах. Даже файловая система, где mkdir может сделать любой (у которого есть права) при большом уровне вложенности неудобна .
То есть уровней иерархии может быть и больше (как на микро так и на макроуровнях), но в данном контексте (в данной модели/в данной информационной системе) их немного.
И таким образом получается что " покупатель может выбрать любой цвет, если этот цвет черный " (с)

DarkMaster Добавление нового уровня вложенности ведет к лишним телодвижениям. Однозначно.
Однако давайте вспомним, когда это уровень иерархии добавлялся внезапно . Обычно это или в результате ошибки или глобальной переделки, когда код надо перетрясывать по любому.

Я думаю, что три-четыре уровня иерархии будут достаточны в 95% случаев. Добавь пару уровней и процент можно поднять до 99.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795378
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКот МатроскинКакие преимущества у этой схемы по сравнению с одной таблицей-деревом?
В основном - упрощённая возможность навешать на разные уровни какие-то уникальные для них дополнительные атрибуты, ограничения итп.

никакого преимущества нет.
переносить элемент из одной группы в другую не удобно!
вывод всего справочника без групп тоже хреново делать, а когда все в одном справочнике все ок.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795392
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wamaco переносить элемент из одной группы в другую не удобно!Что вы называете элементом - лист или ветку? Можно с примерами - перенос элемента в случае с одной таблицей или с тремя.
wamaco вывод всего справочника без групп тоже хреново делатьАналогично подтвердите примерами. Что хотите получить как вывести.
...
Рейтинг: 0 / 0
Посоветуйте как лучше
    #38795413
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Кот Матроскин Какие преимущества у этой схемы по сравнению с одной таблицей-деревом? Если одним словом то она проще
Линейные джойны проще серверу для постоить план, проще отлаживать программисту.
Плюс иерархические запросы по разному реализуются в разных СУБД.

Если так хочется "линейных джойнов" - ну джойните N раз одну и ту же таблицу, почему нет.
Любые операции с каталогом (думаю, вы согласитесь что "операция с каталогом в целом" - вещь куда более распространенная, чем "операция с N-ым уровнем каталога отдельно") производятся на одной таблице, а не на N разных.
Поэтому характеристика Вашей схемы "проще" - мне представляется сомнительной.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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