powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Очень интересный вопрос. Для профи.
32 сообщений из 32, показаны все 2 страниц
Очень интересный вопрос. Для профи.
    #35933261
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, вот подскажи.. Может у вас есть идеи или даже сталкивались с подобным.

В общем я реализовал универсальную систему каталогов с товарами. Они бесконечны. Но не это меня теперь интересует. Мне интересно, как сделать так, чтобы каждому подразделу можно было бы! указывать список параметров, которыми бы обладали товары содержащиеся в нем. А вот и пример случая:

КАТАЛОГ
Компьютеры
Комплектующие
Видеокарты
Процессоры
Интел
... - (товары собсно)
АМД
Мониторы
Периферия
Фрукты
Овощи
Коты
Ракеты
Спутники
Планеты
Сосиски
Карандаши
...


вот. есть каталог. как видим - имеются разделы. в них - подразделы и так далее. вложенность может быть любой глубины. Хоть 1, хоть 99, хоть стопитсот мильёнов. Товары в подразделах обладают разными характеристиками. Так вот чтобы организовать системы сравнений, поиска по параметрам в разделах и т.п., необходимо иметь набор уникальных параметров для конкретного раздела. Но нельзя ведь предусмотреть все виды товаров. Вопрос - как это реализовать? Какие идеи? Кто что слышал.. видел... Задача для меня очень актуальная и интересная вообще.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933323
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно добавить таблички, которые будут хранить свойства товаров и их значения

Например:

Код: plaintext
1.
2.
3.
goods_properties (свойства товаров)
----------------
id
name (имя свойства, например цена)

Код: plaintext
1.
2.
3.
4.
5.
goods_properties_values (значение для свойств товаровов)
----------------
id
good_id (id товара)
property_id (id свойства)
value (значение свойства для товара)
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933334
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неинтересный вопрос. в проетировании БД на каждой странице такой.
авторНужно добавить таблички, которые будут хранить свойства товаров и их значения
дальше приходим к мысли, что свойства могут менятся, а ALTER TABLE на жизненно необходимых данных штука палевная да и долгая, и думаем дальше.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933476
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow

извините конечно, но Вы не правы. а не правы Вы в том, что своем сообщении указали мне на неинтересность моего вопроса, да еще и совет человека обгавняли. А сами-то чего умного сказали или показали? Бросаться словами мы все горазды, но подобных примеров я что-то не припомню в книжках по базам данных для ламмеров на стадии изучения азов. Так что, если вы на самом деле ТАК круты, может изволите привести пример данной реализации? Таких критиков как вы полно в сети. И вопрос далеко не простой, чтоб вот так тыкать мне в нос книжкой. Если б я спросил про так, как реализовать цикл for от 1 до 10, я бы еще согласился.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933491
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
phpTeachНужно добавить таблички, которые будут хранить свойства товаров и их значения

Например:

Код: plaintext
1.
2.
3.
goods_properties (свойства товаров)
----------------
id
name (имя свойства, например цена)

Код: plaintext
1.
2.
3.
4.
5.
goods_properties_values (значение для свойств товаровов)
----------------
id
good_id (id товара)
property_id (id свойства)
value (значение свойства для товара)


ваш совет только отчасти полезен. его я уже реализовывал в джругих проектах. но в данном случае это только начало. вершина, так сказать, айсберга, так как нужны не просто характеристики, а группы характеристик для групп товаров. причем эти группы характеристик должны быть динамичны.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933871
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAHOUNYphpTeachНужно добавить таблички, которые будут хранить свойства товаров и их значения

Например:

Код: plaintext
1.
2.
3.
goods_properties (свойства товаров)
----------------
id
name (имя свойства, например цена)

Код: plaintext
1.
2.
3.
4.
5.
goods_properties_values (значение для свойств товаровов)
----------------
id
good_id (id товара)
property_id (id свойства)
value (значение свойства для товара)


ваш совет только отчасти полезен. его я уже реализовывал в джругих проектах. но в данном случае это только начало. вершина, так сказать, айсберга, так как нужны не просто характеристики, а группы характеристик для групп товаров. причем эти группы характеристик должны быть динамичны.
Напиши мне подробнее, что означает группа характеристик?
Т.е получается у тебя у одной группы товаров могут быть разные наборы характеристик(группа характеристик)?
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933936
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм.. значит я с самого начала не очень понятно объяснил. попробую еще раз.

есть каталог. каталог это, прежде всего, куча разделов, содержащихся друг в друге. родители и дети. это понятно. все стандартно. каждый из этих разделов может иметь еще и товары. скорее всего раздел, имеющий товары не будет иметь в себе других разделов. только товары. вот есть раздел "Комплектующие". у него есть подразделы "процессоры", "видеокарты" и "мониторы". да? так вот товары этих разделов обладают РАЗНЫМИ характеристиками. верно? верно. и для каждого товара мне нужно хранить его характеристики отдельно. т.е. это будет список параметров товара, завязанных на конкретный товар. т.е. для раздела Процессоры будет группа_характеристик_1, а вот для группы видеокарты, уже будет группа_характеристик_2 и так далее. для самых разных групп, самых разных разделов. т.е. группа параметров определяет конкретный ТИП товара. а именно: процессор, яблоко, монитор, принтер, сигарета и так далее. Вот. Т.е. при создании определенного раздела, если он содержит в себе товары, то я должен назначить ему ТИП и соответствующий этому типу список параметров для товаров, которые в нем будут содержаться. Пока понятно? ))) фух.. Но есть еще одно НО! раздел, которому я назначаю тип, может содержать в себе еще другие подразделы. а уже в них могут быть товары. Т.е. свзяь товаров с типизируемым разделом может быть не ПРЯМАЯ, а КОСВЕННАЯ, через ПОСРЕДНИКОВ... )))) вот.. надеюсь все понятно, давайте думать вместе )
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35933972
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если уж выражаться совсем деревенским языком: я собираюсь реализовать каталог с товарами, любой раздел/подраздел которого сможет обладать УНИКАЛЬНЫМИ характеристиками товаров, содержащихся в нем. остальное уже нюансы. но идея - такова.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35934169
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о чём думать? вам же уже подали основную идею - засуньте кастомные свойства в отдельную таблицу. нужны группы? - сделайте группы, это уже тривиальная задача и зависит только от прямоты рук.

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

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35934172
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
sections (разделы)
--------
id
parent_id (id родителя)
name (имя раздела)

Код: plaintext
1.
2.
3.
4.
goods (товары)
-----
id
section_id (id раздела)
name (имя товара)

Код: plaintext
1.
2.
3.
goods_properties (свойства товаров)
----------------
id
name (Имя свойства)

Код: plaintext
1.
2.
3.
4.
sections_properties (привязка свойств к разделам)
-------------------
id
section_id (id раздела)
property_id (id свойства)
Код: plaintext
1.
2.
3.
4.
goods_sections_properties_values (значения для свойств определенного раздела)
--------------------------
good_id
section_property_id
values

Надеюсь понятно
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35934240
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, примерно в этом направлении я и думал.. у меня сейчас ночь, поэтому я спать. завтра с бодричка продумаю этот вариант, Ваш, и пойму, то ли это, или не то, что нужно... и достаточно. но похоже на правду. тем более, если так думал не я один, но и вы. а если не один человек думал так, следовательно в этом есть какая-то истина.. За сим и полез на форум.

а исходный код приводить бесполезна. он тут не нужен. нужна идея. кодить может любой дурак.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35934289
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем примере:
1) Каждый товар относится к определенной группе
2) Каждая группа обладает определенными свойствами, соответственно товар попадаю в эту группу становится обладателем этих свойств
3) Значения этих свойств для определенного товара можно узнать из таблички goods_sections_properties_values

Модератор: Тема перенесена из форума "PHP,Perl".
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35934927
MAHOUNY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да. это будет работать. Вот так:

берем эту структуру каталога и товаров и делаем так, чтобы каждый раздел/подраздел позволял создавать в нем характеристики для товаров в нем. данный раздел может также содержать и другие подразделы, со своими товарами. Характеристики будут влиять ТОЛЬКО на товары, принадлежащие непосредственно ЕМУ. Их можно будет создавать и удалять из раздела или редактировать. Да.... прикольно. Спасибо! )
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35946933
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё одна ремарка... В своё время делали проект для ОЧЕНЬ большой российской компании по централизованным закупкам материально-технических ресурсов. Так вот какой был подход логический:
чтобы не придумывать каталоги и рубрики от балды, а стандартизировать, был принят базовый классификатор ОКП(общероссийский классификатор продукции). Классификатор описывает поверхностно виды продукции, но в этом и его прелесть, к этому классификатору цепляли классы, уже разрабатываемые вручную(именно те какие нужны). Принцип был таков, в одном классе не может быть более 10 экземпляров класса, если больше, то детализируем класс. К "листам" класса уже прикручивали свойства и значения, которых тоже было от 10 до бесконечности. А к этому классификатору уже цеплялся справочник с конкретными записями(МТР) и кодировались по классификатору. Получалось пять табличек в оракле
1. справочник мтр
2. базовый классификатор ОКП
3. разработанные классы
4. свойства
5. значения
и намордник на с++ типа система ведения.
пример на картинке
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947054
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixassioещё одна ремарка... В своё время делали проект для ОЧЕНЬ большой российской компании по централизованным закупкам материально-технических ресурсов. Так вот какой был подход логический:
чтобы не придумывать каталоги и рубрики от балды, а стандартизировать, был принят базовый классификатор ОКП(общероссийский классификатор продукции). Классификатор описывает поверхностно виды продукции, но в этом и его прелесть, к этому классификатору цепляли классы, уже разрабатываемые вручную(именно те какие нужны). Принцип был таков, в одном классе не может быть более 10 экземпляров класса, если больше, то детализируем класс. К "листам" класса уже прикручивали свойства и значения, которых тоже было от 10 до бесконечности. А к этому классификатору уже цеплялся справочник с конкретными записями(МТР) и кодировались по классификатору. Получалось пять табличек в оракле
1. справочник мтр
2. базовый классификатор ОКП
3. разработанные классы
4. свойства
5. значения
и намордник на с++ типа система ведения.
[b]пример на картинке
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947059
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C уважением,
AlexandrN©
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947072
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr Nikolaev,
где что?
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947196
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixassioAlexandr Nikolaev,
где что?
В "Общероссийском классификаторе продукции"
"Вентеляторы общего назначения" содержат:
Вентеляторы с электронным приводом - код ОКП = 48 6110
Вентеляторы центробежные до N 8 - код ОКП = 48 6120
и так далее..

У вас в классификаторе они отсутствуют (судя по примеру на картинке) ?

ОКП
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947206
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr Nikolaev,

дык это Вентеляторы, а у него Вентиляторы, две большие разницы
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947256
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне просто стало интересно куда делись "подгруппы" продукции.

ОКПНа первой ступени классификации располагаются классы продукции (ХХ 0000),
на второй - подклассы (ХХ Х000),
на третьей - группы (ХХ ХХ00),
на четвёртой - подгруппы (ХХ ХХХ0) и
на пятой - виды продукции (ХХ ХХХХ).

C уважением,
AlexandrN©
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947313
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне просто непонятно, что получит на выходе пользователь,
если захочет осуществить поиск по коду ОКП "57 1193",
который соответствует "Пески из природного камня, прочие" (пример из ОКП ).
Так как "из примера на картинке" следует, что нет "подгрупп" и "видов продукции".
Хотя я могу и ошибаться.
C уважением,
AlexandrN©
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947333
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr Nikolaev,
на картинке просто пример, из презентации...
Смысл в том, что разрабатываются и остаются классы, заточенные под проект если класс не используется то он и не нужен там.
В чом конкретно вопрос?
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947367
nekto_sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mixassioна картинке просто пример, из презентации...
Смысл в том, что разрабатываются и остаются классы, заточенные под проект если класс не используется то он и не нужен там.
В чом конкретно вопрос?
Не могли бы Вы привести скрипты создания ваших пяти табличек и вставки тестовых данных вплоть до конкретного вентилятора вентилятора. Не вполне понимаю, как конкретный экземпляр вентилятора наследует уникальные свойства групп, подгрупп и т.п. И как он их подменяет (override) в случае необходимости.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947394
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixassioAlexandr Nikolaev,
на картинке просто пример, из презентации...
Смысл в том, что разрабатываются и остаются классы, заточенные под проект если класс не используется то он и не нужен там.
В чом конкретно вопрос?
Тут и тут .
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947453
SMAKSx86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, это не к реляционной БД прикручивать надо?
Может, в PostgreSQL это поудобнее как-нибудь сделать или в другой, предназначенной для таких задач.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947527
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скриптов к сожалению нету, могу написать структуру на память

1. Таблица T_TREE содержит ОКП (иерархический)
1.1 ID идентификатор
1.2 PARENT_ID ссылка на ID (родительского класса)
1.3 CODE код класса окп
1.4 NODE_NAME наименование класса окп
2. Таблица T_CLASS содержит "листы" дерева окп, может содержать как классы окп, так и разработанные классы
2.1 ID идентификатор
2.2 TREE_ID ссылка на поле ID таблицы T_TREE
2.3 CODE код класса
2.4 CLASS_NAME наименование класса окп
3. Таблица T_CLASSITEM содержит свойства классов
3.1 ID идентификатор
3.1 CLASS_ID ссылка на поле ID таблицы T_CLASS
3.2 ITEMNUMBER порядковый номер свойства
3.3 PROPERTY Название свойства
4. Таблица T_NAME содержит значения свойств классов
4.1 ID идентификатор
4.1 CLASSITEM_ID ссылка на поле ID таблицы T_CLASSITEM
4.2 VALUENUMBER порядковый номер значения свойства
4.3 ITEM_VALUE Название значения свойства
это структура классификатора, ну и пятая табличка собственно справочник мтр где хранятся конкретные объекты, кодируемые с помощью классификатора.
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947533
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMAKSx86А может, это не к реляционной БД прикручивать надо?
Может, в PostgreSQL это поудобнее как-нибудь сделать или в другой, предназначенной для таких задач. разрабатывалось на оракле, а работает (уже реально) на MS SQL
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947646
SMAKSx86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixassioSMAKSx86А может, это не к реляционной БД прикручивать надо?
Может, в PostgreSQL это поудобнее как-нибудь сделать или в другой, предназначенной для таких задач. разрабатывалось на оракле, а работает (уже реально) на MS SQL
Я не спорю, я просто предлагаю, как мне кажется, более логичный способ решения задачи
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947666
Фотография mixassio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMAKSx86mixassioSMAKSx86А может, это не к реляционной БД прикручивать надо?
Может, в PostgreSQL это поудобнее как-нибудь сделать или в другой, предназначенной для таких задач. разрабатывалось на оракле, а работает (уже реально) на MS SQL
Я не спорю, я просто предлагаю, как мне кажется, более логичный способ решения задачи Логика отступает когда майкрософт активно продвигает свои продукты в госкомпании и не только. На чом сказали, на том и разрабатывали))))
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35947850
SMAKSx86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 mixassio

Это уже другой разговор :-)
Правда, иногда есть еще вопрос сертификации. А для сертификации необходима заинтересованность разработчика СУБД и ее желание потратить на это деньги
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35958148
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тринадцатиэтажные SQL запросы при поиске... однако...
...
Рейтинг: 0 / 0
Очень интересный вопрос. Для профи.
    #35958154
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpTeach
Код: plaintext
1.
2.
3.
4.
sections (разделы)
--------
id
parent_id (id родителя)
name (имя раздела)

Код: plaintext
1.
2.
3.
4.
goods (товары)
-----
id
section_id (id раздела)
name (имя товара)

Код: plaintext
1.
2.
3.
goods_properties (свойства товаров)
----------------
id
name (Имя свойства)

Код: plaintext
1.
2.
3.
4.
sections_properties (привязка свойств к разделам)
-------------------
id
section_id (id раздела)
property_id (id свойства)
Код: plaintext
1.
2.
3.
4.
goods_sections_properties_values (значения для свойств определенного раздела)
--------------------------
good_id
section_property_id
values

Надеюсь понятно

мне вот интересно при таком подходе поле values... ведь оно не всегда должно быть текстовым, а может быть и числовым, или ещё хуже, записью set с id_справочника и значением этого справочника... тогда поиск по параметрам будет очень медленным...
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Очень интересный вопрос. Для профи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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