powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура таблицы товаров? Крупный проэкт
25 сообщений из 33, страница 1 из 2
Структура таблицы товаров? Крупный проэкт
    #36640253
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Нужно создать таблицу(ы) товаров с неограниченным(большим запасом) свойств.
Собственно что я надумал:

Основная таблица объектов (item)
id (autoincrement)
site_id (index)
name varchar [наименование]
description varchar [описание]
text text [полное описание]
price int [основная цена]
status enum (index) [статус:on|off]

Таблица свойств (feature)
id (index)
site_id (index)
name varchar [название]
type enum [тип:строка|текст|число|ссылка на файл]
status enum (index) [статус:on|off]

Таблица значений свойств и связка с объектом
id_item (index)
id_feature (index)
value_i int [число]
value_v varchar [строка|ссылка на файл]
value_t text [текст]

Ну вот как-то так. Боюсь что последняя таблица будет просто огромной (может последнюю таблицу разбить на разные таблицы по типу). Да и всё это не совсем как лучше дергать, чтоб дешевле было. Сайтов сейчас порядка 100 и еще будет больше, у каждого сайта от 100 до 1000 товаров. И товары разнообразные, т.е. таблица должна быть универсальной.

С уважением Александр.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36640284
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgs, а вы из беларуси, что у вас цена INT?

А вообще тема часто обсуждаемая тут.
http://www.sql.ru/forum/actualthread.aspx?tid=736284&hl=%e2%e5%f0%f2%e8%ea%e0%eb%fc
http://www.sql.ru/forum/actualthread.aspx?tid=685384&hl=%e2%e5%f0%f2%e8%ea%e0%eb%fc%ed%e0%ff
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36640299
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mahouneclgs, а вы из беларуси, что у вас цена INT?

[...]
Не столь важно, да и это на рабочий вариант. А за линки спасибо буду изучать...
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641052
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну база как-то так получилось. Сейчас буду наполнять и проверять.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
-- 
-- Структура таблицы `product` собственно самы товары
-- 

CREATE TABLE `product` (
  `id` int( 10 ) unsigned NOT NULL auto_increment,
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `name` varchar( 100 ) NOT NULL, # наименование
  `description` varchar( 255 ) NOT NULL, # краткое описание
  `price` float NOT NULL, # основная цена в у.е.
  `status` tinyint( 1 ) unsigned default '1', # статус (основные  0 , 1 , расширяется  2 , 3 , 4 ...) > 0  выводятся
  PRIMARY KEY  (`id`),
  KEY `sid` (`sid`,`price`,`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT= 1  ;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_status` статусы
-- 

CREATE TABLE `product_status` (
  `id` int( 10 ) unsigned NOT NULL auto_increment,
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `name` varchar( 50 ) NOT NULL, # наименовае статуса
  PRIMARY KEY  (`id`),
  KEY `sid` (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT= 1  ;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_feature` свойства
-- 

CREATE TABLE `product_feature` (
  `id` int( 10 ) unsigned NOT NULL auto_increment,
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `name` varchar( 100 ) NOT NULL, # наименование
  `ftid` int( 10 ) unsigned NOT NULL, # id типа свойства
  `status` tinyint( 1 ) unsigned default '1', # статус ( 0 , 1 ) > 0  выводятся
  PRIMARY KEY  (`id`),
  KEY `sid` (`sid`,`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT= 1  ;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_feature_type` типы свойств
-- 

CREATE TABLE `product_feature_type` (
  `id` int( 10 ) unsigned NOT NULL auto_increment,
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `table` varchar( 30 ) NOT NULL, # имя таблицы и тип
  PRIMARY KEY  (`id`),
  KEY `sid` (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT= 1  ;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_float`
-- 

CREATE TABLE `product_float` (
  `pid` int( 10 ) unsigned NOT NULL, # id продукта
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `fid` int( 10 ) unsigned NOT NULL, # id свойства
  `value` float NOT NULL,
  KEY `pid` (`pid`,`sid`,`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_int`
-- 

CREATE TABLE `product_int` (
  `pid` int( 10 ) unsigned NOT NULL, # id продукта
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `fid` int( 10 ) unsigned NOT NULL, # id свойства
  `value` int( 18 ) NOT NULL, # значение
  KEY `pid` (`pid`,`sid`,`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_string`
-- 

CREATE TABLE `product_string` (
  `pid` int( 10 ) unsigned NOT NULL, # id продукта
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `fid` int( 10 ) unsigned NOT NULL, # id свойства
  `value` varchar( 255 ) NOT NULL, # значение
  KEY `pid` (`pid`,`sid`,`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- --------------------------------------------------------

-- 
-- Структура таблицы `product_text`
-- 

CREATE TABLE `product_text` (
  `pid` int( 10 ) unsigned NOT NULL, # id продукта
  `sid` int( 10 ) unsigned NOT NULL, # id сайта
  `fid` int( 10 ) unsigned NOT NULL, # id свойства
  `value` text NOT NULL, # значение
  KEY `pid` (`pid`,`sid`,`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Подразумивается что вложенность (оно же тип товара) прописывается в отдельной таблице (один ко многим)
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641121
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСайтов сейчас порядка 100 и еще будет больше, у каждого сайта от 100 до 1000 товаров
сто тысяч записей - это ОГРОМНАЯ таблица??? смеялсо.
то что ты придумал это EAV - стуктура хранения такая. в советской россии называется "Схема Тенцера"
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641159
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgs,

Как взаимосвязаны между собой сайты?
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641182
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow[...]
сто тысяч записей - это ОГРОМНАЯ таблица??? смеялсо.
[...]

clgs[...]
Боюсь что последняя таблица будет просто огромной (может последнюю таблицу разбить на разные таблицы по типу).
[...]
Сайтов сейчас порядка 100 и еще будет больше, у каждого сайта от 100 до 1000 товаров. [...]

Я говорил относительно таблицы товаров. А теперь считаем внимательно и читаем тоже)
100*1000*50 = 5 000 000 свойств. Про них я и говорил. И это только начало. Хотя Вы правы, не очень то и большая.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641188
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftclgs,

Как взаимосвязаны между собой сайты?

Не как. А тожнее используют один движек (SaaS)
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641210
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgsmiksoftclgs,

Как взаимосвязаны между собой сайты?

Не как. А тожнее используют один движек (SaaS)Тогда я бы на вашем месте рассмотрел вариант хранения данных не в одной таблице, а посхемно (т.е. 100 databases с одинаковыми по структуре таблицами). Для администрирования (репликации, бэкапы, права доступа, блокировки и т.п.) может оказаться значительно удобнее.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641233
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgs,

Задача, случаем не учебная?
А то, может, зря мы тут придираемся?
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641282
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю нет...
Очень правдоподобно выглядит.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641328
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mahouneОчень правдоподобно выглядит.Это кому как :)
Немалый ряд категорий товаров с такой структурой таблиц не продашь. А поскольку у топикстартера происходит попытка простроить SaaS, то ему нужна весьма универсальная структура, до которой еще далеко.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641351
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftclgs,
Задача, случаем не учебная?
А то, может, зря мы тут придираемся?

2miksoft , Во первых, чтение чужих мыслей зря не бывает, если это не шизофреник). Нет, не учебная. Суть следущая, есть SaaS проэкт, под каждый сайт создаём по требованию таблицы вручную и шаблон для вывода. Потом добавления, редактирования... Работы хватает... Собственно всё это нужно возлажить на самого заказчика, при минимальных увеличениях нагрузки на сервера.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641363
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft[...]Немалый ряд категорий товаров с такой структурой таблиц не продашь. А поскольку у топикстартера происходит попытка простроить SaaS, то ему нужна весьма универсальная структура, до которой еще далеко.
Поэтому этот вопрос попал на обсуждения в массы. А не в узком круку с узким мышлением.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36641379
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgsПоэтому этот вопрос попал на обсуждения в массы. А не в узком круку с узким мышлением.Чтобы масса была больше - перенесу топик.
Тем более, что тема весьма баянистая и не MySQL-специфичная.

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36642797
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что пришло на ум.

product - Продукты
product_group - Группы продуктов
product_in_group - Связь групп и продуктов
product_status - Дополнительные статусы продукта (Может не использоваться)
product_feature - Связь характеристики продукта с типом, группой и данными
product_feature_type - Тип характеристики (Содержит название, способа хранения|отображения и статус показывать фильтр по этому полю или нет)
product_feature_group - Наименование группы характеристик и статус (Может не использоваться. Если выключена то не показывается вся группа. Как эти характеристики)
product_feature_* - Таблица данных

Ваши "придирки"?
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643656
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
clgs,

Продукты могут входить в несколько групп?

Если нет, то product_in_group лишняя.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643663
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2clgs,

Продукты могут входить в несколько групп?

Если нет, то product_in_group лишняя.

Могут, а могут и не могут :)
Т.е. нужно учесть два варианта, и еще оптимально по нагрузки.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643667
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить. Тут вопрос стоит в другом, интересует универсальность по полям (характеристикам).
Думаю для оптимизации, организовать группы, т.е. таблица для групп данных (например: группа цена[цена розничная, оптовая, крупно оптовая, для дилеров], т.е. такие данные которые нет смысла разделять и хранить по отдельности), ну и оставить таблицы для одиночных данных.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643680
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
clgs,

Вам уже написали что это "схема по Тенцеру"?
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643762
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Да, писали.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36643882
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
clgsCat2,

Да, писали.
Тогда решайте что будет лучше.

1. Не думать о задаче , сделать универсальные справочники по Тенцеру которые смогут отразить любые требования но и навсегда убить эффетивность запросов

2. Тщательно продумать задачу, отмести ненужные требования и сделать эффективную базу, но в то же время ожидать, что изменение условий потребует изменений таблиц в базе и пренедалки интерфейсов.

Решать Вам. Панацеи нет.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36644053
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgs,

А вам никогда не приходило в голову, что листовая (не имеющая подгрупп) группа товаров - это подмножество товаров, обладающих сходным набором характеристик?

Попутно - характеристики могут быть справочными и фильтрационными (не знаю правильный термин, суть в том, что они могут использоваться для отбора/фильтрации товаров), могут быть с фиксированным перечнем значений и без такового (для таковых, имхо, лучше построить отдельную подсистему таблиц). Так нередко бывает нужен числовой эквивалент характеристики для фильтрации по диапазону. В случае, если нужна сортировка значений характеристики, отличная от алфавитной и отличная от сортировки по числовому значению, может быть нужно отдельное значение для сортировки.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36644088
Фотография clgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

1. Поэтому думаю организовать таблицы групповых данных (писал выше), т.е. в одной таблице сразу несколько характеристик.

2. Для сортировки и фильтрации - Числовой эквивалент строковой характеристики можно указать в таблице product_feature_type ; А вот с перечнем я совсем забыл, в туже таблицу добавить линк на другую таблицу со списком доступных характеристик.
miksoftclgs,
[...] В случае, если нужна сортировка значений характеристики, отличная от алфавитной и отличная от сортировки по числовому значению, может быть нужно отдельное значение для сортировки.
Если не сложно, объясните пожалуйста.
...
Рейтинг: 0 / 0
Структура таблицы товаров? Крупный проэкт
    #36644189
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clgsmiksoft,

1. Поэтому думаю организовать таблицы групповых данных (писал выше), т.е. в одной таблице сразу несколько характеристик.Вы неправильно поняли мою мысль. В ваших терминах, я говорил о взаимосвязи между таблицами product_group и какой-то из таблиц с характеристиками (не могу понять, какая из них содержит справочник характеристик.)
clgsmiksoftclgs,
[...] В случае, если нужна сортировка значений характеристики, отличная от алфавитной и отличная от сортировки по числовому значению, может быть нужно отдельное значение для сортировки.
Если не сложно, объясните пожалуйста.Может, примеры не лучшие, но попробую:
1) сувениры по знакам зодиака - лучше сортировать по их хронологическому порядку;
2) цвета каких-либо предметов - бывает нужно сортировать по некоторой палитре.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура таблицы товаров? Крупный проэкт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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