购物车数据库大纲设计

时间:2009-11-07 19:23:54

标签: mysql

我正在寻找设计购物车的最佳方式。我正处于如何处理具有多种颜色和尺寸选择的产品的十字路口。主要问题是颜色和尺寸的库存管理。

目前在管理员面板上:

颜色的文本字段 textfield for quantity

用户用逗号分隔颜色和数量,以便颜色和颜色当我将它们爆炸/内爆到数组时,数量匹配,这样我就可以在对数据进行数组搜索后,通过键来购买数据时管理数量。

现在我只有一张桌子拿着upc / name / color / quanity / price等......

我应该使用某种类型的外键并自己拥有颜色/数量表吗?

这更像是一个设计问题而不是向我展示如何解决这个问题,因为我只是想学习管理数据库的最佳方法。

谢谢!

3 个答案:

答案 0 :(得分:2)

我不确定我理解你的问题,但我认为你正在寻找有关如何对此进行数据建模以及如何将此模型中的数据数组表示为可以在浏览器端操作的字符串的建议。

对于数据模型,听起来你需要5个表:

1)产品,2)颜色,3)尺寸,4)产品和颜色之间的关联表,5)产品和尺寸之间的关联表。表4和表5实现了产品与所提供的不同颜色之间以及产品与不同尺寸之间的多对多关系。

然后,您可以采用标准方式将购物车项目表示为字符串。说:

< productId>,< qty>,< 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

答案 1 :(得分:0)

为什么不首先探索开源购物车如何处理类似的任务。 osCommerce是我想到的。

答案 2 :(得分:0)