Forum Webscript.Ru

Программирование => PHP => Тема начата: Vad от 02 Июня 2003, 16:50:10

Название: Подскажите как лучше решить следующую задачу:
Отправлено: Vad от 02 Июня 2003, 16:50:10
Как лучше сделать систему обновления продукции в которой один и тот же продукт может иметь несколько модификаций. Например автомобиль одной и той же марки может различаться по объему двигателя, цвету и т.д. и соответственно цена будет тоже другая. Такой продукт необходимо выводить в виде таблицы. Причем необходимо реализвовать возможность заказа каждой модификации продукта отдельно.
Какие будут прдложения?
PS. Используя PHP+MySQL
Название: Подскажите как лучше решить следующую задачу:
Отправлено: ThE0ReTiC от 02 Июня 2003, 17:04:33
Цитировать
Vad:
Причем необходимо реализвовать возможность заказа каждой модификации продукта отдельно

Это и есть ответ на твой вопрос :)
Автомобиль состоит из частей... части и надо хранить и комбинировать...
Название: Подскажите как лучше решить следующую задачу:
Отправлено: Vad от 02 Июня 2003, 17:28:53
Я думал сделать это так
 сделать отдельную таблицу - свойства в нее заносить все дополнительные свойства товара причем у каждой категории товара могут быть свои свойства.
Но а затем что значения свойств хранить в отдельной таблице или же можно их в общую таблицу товаров запихать все в одну ячейку массивом?
Объясните подробней как лучше? Мне нужна система обновления товаров не для конкретных товаров а такая чтобы она повозможности подходила под все товары.
Название: Подскажите как лучше решить следующую задачу:
Отправлено: Макс от 02 Июня 2003, 18:58:17
Vad
Цитировать
Объясните подробней как лучше?
подробно тебе никто не объяснит, так как все зависит от задач которые тебе нужно решать  (проще говоря, что в дальнейшем нужно делать с этими полями). Например твой вариант
Цитировать
или же можно их в общую таблицу товаров запихать все в одну ячейку массивом?
вполне рабочий если с этими данными на уровне БД работать не надо.

но я бы делал 4 таблицы:
group - таблица описания категорий
(group_id - primary key,
... // остальные поля по желанию)
products - таблица описания товаров, содержит поля, общие для всех товаров поля. Например название, цена, краткое описание.
(product_id - primary key,
group_id - ИД категории которой принадлежит данный товар
... // остальные поля по желанию)
attributes - описание аттрибутов для каждой категории
(attr_id - primary key,
group_id - для какой категории этот аттрибут,
name - название аттрибута)

attribute_values - таблица значений дополнительных аттрибутов товаров
(attr_id - ИД аттрибута
product_id - ИД товара
value - значение аттрибута)

вариант может и громоздкий, но более функционален и универсален (ИМХО)
Название: Подскажите как лучше решить следующую задачу:
Отправлено: Mаster от 03 Июня 2003, 11:10:14
Я бы сделал так, если тот или иной контент автомобиля, например цвет будет содержать разные значения для всех автомобилей, то есть было бы примерно так[не надо придераться к ценам :) ]:

volvo = $1000
volvo = $1200

audi = $1000
audi = $1100

то тогда лучше сделать одну таблицу при условии, что в ней не будет больших полей, ничего больше varchar(255) для ускорения.

а если бы было:

volvo = $1000
volvo = $1200

audi = $2000
audi = $2200

то тогда эти поля можно вынести в отдельные таблицы и просто считать определенный цвет, машина будет стоить на $100, $200, $300 дороже, но это банально и на самом деле не так, так что на мой взгляд здесь актуален первый способ.
Название: Подскажите как лучше решить следующую задачу:
Отправлено: я... от 03 Июня 2003, 11:21:43
проще всего сделать так:
таблица "машины", таблица включающая в себя авто, но без
аттрибутов (т.е. без двигателя, цвета, итд),
car_id,name,price
таблица "цвета", таблица цветов и разницу в цене, если конечно все машины имеют четкую зависимость в цене от цвета...
color_id,name,price
таблица "двигатель", аналогично таблице "цвета"..
engine_id,name,price
и
продукты, совмещение, т.е.
id,name,car_id,color_id,engine_id

мне кажется так будет рациональнее, но, повторяю, если есть четкие зависимости в цене от модификации для всех товаров...
Название: Подскажите как лучше решить следующую задачу:
Отправлено: Vad от 03 Июня 2003, 19:54:01
Последнии 2 варианта не универсальны. я же говорил что - Мне нужна система обновления товаров не для конкретных товаров а такая чтобы она повозможности подходила под все товары.
Поэтому выбирать надо наиболее универсальный способ.
Думаю сделать как предлагает Макс единственное хотя может быть подумаю и о массивах. Какие еще будут варианты?
Название: Подскажите как лучше решить следующую задачу:
Отправлено: я... от 04 Июня 2003, 09:30:02
Vad, универсальная?..
делай такую таблицу:

CREATE TABLE `trade` (`id` INT( 255 ) NOT NULL ,
`name` VARCHAR( 255 ) NOT NULL ,
`values` TEXT NOT NULL ,
`price` VARCHAR( 255 ) NOT NULL
);

в values пихай опции товара (например id другой таблицы через запятую)..
при выводе просто разделять будешь =)
тупо, потому что, не сделать нормальную выборку по опциям... зато универсально...
Название: Подскажите как лучше решить следующую задачу:
Отправлено: FILA от 05 Июня 2003, 14:57:38
я...
Цитировать
INT( 255 )

это что-то новенькое ))))
очепятался?
Название: Подскажите как лучше решить следующую задачу:
Отправлено: Vad от 05 Июня 2003, 19:57:18
Дело в том что не всегда цена отличается. Не в цене дело
Очень часто надо выводить товар в таком виде - http://www.stibetherm.gr/english/products/solar_systems_1.html . Как для таких товаров можно систему обновления сделать?
Название: Подскажите как лучше решить следующую задачу:
Отправлено: nagash от 07 Июня 2003, 03:57:40
одна таблица с названием товвара и неизменяемыми параметрами...
другая таблица со всякими мелочами...
треться таблица с их совмещением...
=)
просто же сделать