2009-11-07 5 views
0

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

В настоящее время на панели администратора:

TextField для цветного TextField для количества

Пользователь отделяет цвета запятой вместе с количеством так совпадение цвета & количество, когда я взрываются/взрывать их в массивы, таким образом, позволяя мне управляйте количеством всякий раз, когда что-то приобретается их ключами после выполнения поиска массива для цвета.

Прямо сейчас я просто один стол холдинга UPC/название/цвет/Quanity/цена и т.д. ...

Должен ли я использовать некоторый тип внешнего ключа и имеющие таблицы для цвета/количества на своем собственном?

Это скорее вопрос дизайна, а не показ мне, как это сделать, поскольку я просто пытаюсь изучить наиболее оптимальный способ управления базой данных.

Спасибо!

+0

Не могли бы вы уточнить, вторую часть вашей проблемы. Возможно, с определениями таблиц и вводами образцов. – mbarkhau

ответ

2

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

Для модели данных, это звучит, как вам нужно 5 столов:

1) продукт, 2) цвет, 3) Размер, 4) ассоциативная таблица между продуктом и цветом, 5) ассоциативная таблицы между Продукт и размер. В таблицах 4 и 5 реализованы взаимосвязи между продуктами и различными цветами, а также между продуктами и различными размерами.

Тогда вы можете установить стандартный способ представления элементов корзины покупок в виде строк. Скажи:

<PRODUCTID>, < кол-во >, <colorId>, <sizeId>

Массивы этих корзины покупок будут разделены точкой с запятой.

Ищете способ представить цвет и размер для определенного продукта?Я часто использую этот тип запроса, чтобы получить выбор в качестве списка разделенных запятыми, которые затем легко иметь дело с клиентской стороны:

-- ============================================= 
-- Author: Joe Blo 
-- Create date: Jan 1, 2010 
-- Description: Returns list of color choices for 
-- a product in CSV format 
-- ============================================= 
CREATE FUNCTION [dbo].[fn_GetProductColorsCSV] 
(
    @pProductUPC VARCHAR(30) 
) 
RETURNS VARCHAR(MAX) 
AS 
BEGIN 
-- Declare the return variable here 
DECLARE @Result VARCHAR(MAX) 

-- Add the T-SQL statements to compute the return value here 
SELECT @Result = COALESCE(@Result + ',', '') + CAST(C.[ColorId] AS varchar) 
FROM dbo.[ProductColorJunction] PCJ 
INNER JOIN dbo.Color C ON C.[ColorId] = PCJ.Color 
WHERE PCJ.ProductUPC = @pProductUPC 

-- Return the result of the function 
RETURN @Result 
END 

alt text http://i34.tinypic.com/23k2q2s.jpg

+0

Эй, есть ли у вас рекомендации по изучению ассоциативных таблиц? Я думаю, что здесь я смущаюсь. Мне трудно понять, как связать различные таблицы вместе. – krx

+0

Я добавил изображение из SQL Server, показывающее физическую взаимосвязь между таблицами, которые иллюстрируют цвета и размеры. Попробуйте выполнить поиск, используя что-то вроде «моделирования многотомного моделирования», и вы сможете найти некоторую помощь. – Emmanuel

+0

JUst заметил, что вы используете MySQL (мое изображение с SQL Server). Однако принципы одинаковы. – Emmanuel

0

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

Смежные вопросы