Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
На самом деле, данная тема рассматривалась уже несколько раз (см. ссылки в конце сообщения) и ничего кроме "голых слов " я не увидел :). Поэтому, решел провести тестирование. Идея тестирования: найти оптимальный способ хранения свойств товаров, имеющих различные физические характеристики (типы свойст). Критерием для оценки оптимальности является скорость поиска товаров, удовлетворяющих условию поиска (условие поиска - совокупность различных признаков товара). В качестве БД для тестирования была выбрана MySql4 (на данный момент, для меня это самое удобное средство, в рамках проекта) Собственно, вопросы: 1. Что Вы думаете об этом? 2. Какую БД Вы используете для хранения? И почему? (Пожалуйста, обоснуйте ответ) 3. Как Вы храните описания (совокупность признаков) товаров в выбранной БД? (В частности, очень интересны ответы в отношении PostgreSQL) 4. Какие "фишки" в выбранной БД Вы используете? (Если будете писать временные таблицы, триггеры, курсоры и т.п., то прошу рассмотреть в каких целях они используются) Заранее благодарю за ответы! ---------------------------- Тестирование ------------------------- Исходные данные тестирования: 10000 товаров по 5 характеристик для каждого товара. Вариант1 - см. Вариант1 Все типы свойств товара храняться в одном текстовом поле (см. схему таблицы по ссылке) таблицы info_goods. Вариант2 - см. Вариант2 Все типы свойств товара храняться в разных полях, соответствующих типов (см. схему таблицы по ссылке) таблицы info_goods. (предложение chira "PHPClub") Условие поиска: Найти все товары, количество деталей которых более 300 шт, Дата поступления не ранее 1997-12-01 и весом более 400.00 кг. Запрос для Варианта №1 : Код: plaintext Запрос для Варианта №2: Код: plaintext Explain для Варианта№1: Результат Explain для Варианта№2: Результат Принятые имена файлов: 1. ddl.sql - команды SQL для создания соответствующих таблиц 2. data.sql - информационные данные таблиц 3. search.sql - запросы поиска информации 4. explain-before-optimiz.jpg - explain результата запроса search.sql для данных, которые были внесены после создания таблицы info_goods (как-будто 10000 "операторов БД" последовательно вносили информацию, а затем также последовательно попорядку ее сохранили) 5. explain-before-optimiz.jpg - explain результата запроса search.sql после оптимизации п.4 6. explain-after-drop-dump.jpg - explain результата запроса search.sql после полного удаления БД, дампирования данных п. 2 (Эквивалентно тому, что "администратор БД" заново восстановил таблицу) 7. explain-after-drop-dump-optimiz.jpg - explain результата запроса search.sql после оптимизации п.6 Резюме: Вариант 2 - лучший из рассмотренных. ---------------------------- Тестирование ------------------------- Ссылки по теме: 1. Организация структуры БД 2. Разные типы данных в одном поле / MySQL 3. Связывание таблиц 4. Увеличение скорости выборки из каталога товаров / MySQL 5. Универсальный каталог "разношерстных" товаров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 13:08 |
|
||
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
Однозначно вариант 2. Хранить надо данные в соответствующих полях. Тогда и найти их можно быстро (по индексу), и преобразований делать не надо. Некоторая избыточность никак не пугает т.к. она незначительна. Даже для 100тыс. товара свойств вряд-ли будет более 500тыс. Это крохи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 11:23 |
|
||
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
LSVОднозначно вариант 2. Хранить надо данные в соответствующих полях. ... при одном условии - набор атрибутов(характкристик) фиксирован ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 12:35 |
|
||
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
Alexey Sh при одном условии - набор атрибутов (характкристик) фиксирован Вероятней всего - набор типов свойств. В приведенном примере их 4: integer, float, string, date. Каждому типу может соответствовать множество "названий" характеристик (к примеру, типу Дата - дата поступления товара, дата отгрузки и т.п.). Я думую, Вы думали так! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 13:11 |
|
||
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
Слегка подкорректировал вопросы: SSSerj ... 2. Какую БД Вы используете для хранения данных интернет-магазина? И почему? (Пожалуйста, обоснуйте ответ) 3. Как Вы храните описания (совокупность признаков) товаров в выбранной БД? (В частности, очень интересны ответы в отношении PostgreSQL) 4. Какие "фишки" в выбранной БД Вы используете? (Если будете писать временные таблицы, триггеры, курсоры и т.п., то прошу рассмотреть в каких целях они используются) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 10:35 |
|
||
|
Правильное хранение свойств товара
|
|||
|---|---|---|---|
|
#18+
при одном условии - набор атрибутов(характкристик) фиксирован Ну да. В таблице есть тип целое, плавающее, дата, логич., строка и ссылка(на внешний справочник) Допустимо одновременное использование сразу нескольких параметров. В типе данных указано какие именно поля активны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2005, 11:11 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32950638&tid=1546002]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 491ms |

| 0 / 0 |
