![]() |
0 Всего найдено: 18
FIXXER
Сообщение
02/04/2010 06:36
Копия темы
Таблица MySQL Есть таблица с товаром, где у каждого товара свой id. Каким образом лучше реализовать "похожие товары" или "с этим товаром обычно покупают" ? Создать новую таблицу отношений или в этой же строке создать поле и через запятую указать id похожих товаров?
AnemoN
Сообщение
02/04/2010 06:46
Копия темы
Голосую за первый вариант ;) Только лучше предварительно протестировать запросы, посмотреть время исполнения, т.к. выборка по 2м таблицам может быть емкой.
FIXXER
Сообщение
02/04/2010 06:55
Копия темы
А мне кажется второй вариант более простым, нет? Нужная строка уже найдена, остается лишь отпарсить номера остальных строк. А вот в случае с отдельной таблицей, какая будет структура?
AlekSky
Сообщение
02/04/2010 06:59
Копия темы
Поскольку каждый " похожий товар" может быть связан с несколькими основными, я голосую за второй вариант.
AlekSky
Сообщение
02/04/2010 07:04
Копия темы
Полагаю, что нет. Вариантов два и из них надо выбирать оптимальный для данной задачи.
AnemoN
Сообщение
02/04/2010 07:09
Копия темы
На мой взгляд такой вариант конечно более простой, но мне больше нравится первый, т.к. при необходимости каких-либо дополнений он предоставляет большую свободу действий. Допустим, необходимо для каждого соответствия задать свое уникальное описание. Типа "покупаете ложку? -купите и вилку тоже!" И если сделано, например, как ниже, то нужно будет только добавить столбец к таблице. CREATE TABLE IF NOT EXISTS `similar` ( `sid` int(10) unsigned NOT NULL auto_increment, `nid1` int(10) unsigned NOT NULL, `nid2` int(10) unsigned NOT NULL, PRIMARY KEY (`sid`), UNIQUE KEY (`nid1`, `nid2`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; Но это мое мнение, весомых аргументов за один из вариантов у меня нет ;)
FIXXER
Сообщение
02/04/2010 07:13
Копия темы
Вы имеете ввиду, что однажды привязав к ложке вилку, не придется к этой же вилке привязывть эту же ложку?
AnemoN
Сообщение
02/04/2010 07:18
Копия темы
Если вы про "UNIQUE...", то да. Ой, допер про что вопрос ;) Можно сделать взаимную связь, а можно только в одну сторону, тут уже как вам угодно.
GudzON
Сообщение
02/04/2010 07:45
Копия темы
похожие товары надо выводить товары из этой же товарной группы с этим товаром покупают- делать анализ на основе записей из таблицы покупок (корзины)
serg-smirnoff
Сообщение
02/04/2010 08:55
Копия темы
Я бы делал по второму варианту. То есть просто в отдельное поле вписал бы через запятую id связанных товаров, а потом "распарсил" бы.
RiDDi
Сообщение
02/04/2010 23:50
Копия темы
первый конечно без вариантов ) "поле через запятую" делать вообще низя, это нерационально и неправильно, а с точки зрения организации это вообще своего своего рода "тупик" и для кеширования и для поиска. кроме того таблица связей или таблицы связей дадут возможность более динамично управлять товарами группировать их в группы например кому надо там пальчиковые батарейки, и ещё дают как бы двустороннюю связь из "мелкого" товара можно будет узнать для каких товаров он предназначен.. например вместе "с такой-то мамкой покупают такой-то проц"... а "такой-то проц подойдет под такую-то мамку"... и группировать можно по фирмам или типу товара например..
FIXXER
Сообщение
03/04/2010 04:52
Копия темы
Только вот какова будет структура этой таблицы? Основной id Доп. id Телевизор1 Подставка1 Телевизор1 Плеер1 Телевизор2 Подставка2 Так?
RiDDi
Сообщение
04/04/2010 23:53
Копия темы
0
так. и уникальный индекс по двум полям.. ну и они идентичны, поэтому скорее просто ид_1, ид_2 ну и если у вас объекты, то обычно используют название объекта_id для полей, а название таблицы состоит из двух объектов во множественном числе в алфавитном порядке что-то типа: CREATE TABLE IF NOT EXISTS `cars_options` ( `car_id` int(10) unsigned NOT NULL, `option_id` int(10) unsigned NOT NULL, UNIQUE KEY `1` (`car_id`,`option_id`) ) связь называется "много-ко-многим" каждый объект может быть связан с множеством других, и наоборот. Название таблицы в алфавитном порядке дает возможность обработчику автоматом получить доступ к таблице нужных связей... Например car хочет получить свои options он ищет их в cars_options... option хочет получить свои cars он тоже ищет в cars_options... чтобы не было путаницы =) |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |