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

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

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

Твои записи
1 "Бытовая техника" null
2 "Крупная бытовая технка" 1
3 "Холодильники" 2
4 "Стиральные машины" 2
5 "Мелкая бытовая техника" 1
6 "Утюги" 5
...
Рейтинг: 0 / 0
03.11.2014, 19:49
    #38794820
indusij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте как лучше
Pallaris, Спасибо. А если нужно будет название категории отредактировать?
...
Рейтинг: 0 / 0
03.11.2014, 19:50
    #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
03.11.2014, 19:51
    #38794822
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте как лучше
indusij,
я читал, что на этот случай есть sql-команда "update"
...
Рейтинг: 0 / 0
03.11.2014, 19:56
    #38794823
indusij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте как лучше
Pallaris, Спасибо) Это я не на то посмотрел)))
...
Рейтинг: 0 / 0
03.11.2014, 19:57
    #38794824
indusij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте как лучше
SERG1257, Спасибо за ответ! Буду читать)
...
Рейтинг: 0 / 0
04.11.2014, 11:02
    #38795038
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте как лучше
SERG1257И к слову - неограниченная вложенность звучит круто, но на практике после седьмого где-то уровня уже надоедает.

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

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

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

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

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

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


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