如何最好地组织我的SQL表格提供电子商务网站的每个项目有多个变体?我经营电子烟业务,事情是由风味和力量组织的。这是我的SQL表粗略样机:为多项电子商务项目构建电子商务数据库
itemNum itemName itemPrice itemConc stockRemaining
--------------------------------------------------
1 Banana 10.99 0 5
2 Banana 10.99 6 42
3 Banana 10.99 12 12
4 Banana 10.99 18 0
5 Cherry 10.99 0 19
6 Cherry 10.99 6 36
... ... ... ... ...
Banana
和Cherry
是味道,与0
,6
,12
,18
是实力。当一个人增加了一些自己的车,东西都存储在$_SESSION
数据在两个数组:$productNumbers
和$productQuantities
,所以当有人增加了5倍Cherry在0强度和2x香蕉在18强到他们的车,下面是初始化:
$productNumbers[] = {5, 4};
$productQuantities[] = {5, 2};
但是,这是管理繁琐,并且有太多的膨胀。当我认为它可以被优化时,我最终会得到四种味道。我最终需要为每个单独的物品/力量组合添加库存,而不是仅将库存添加到一种风味;当我只需要其中的1/4时,最终可能会有数百行。我正在考虑类似下面的东西:
itemNum itemName itemPrice zero six twelve eighteen
---------------------------------------------------
1 Banana 10.99 0 1 5 2
2 Cherry 10.99 6 3 42 3
... ... ... ... ... ... ...
但我不知道如何最好地实现这一点。 itemPrice
右边的列将是每种口味的个人强度的库存水平,但是当考虑我的推车系统时,我将如何区分它们?这看起来非常有效,但实施起来很麻烦。我不能想办法让它没有做多阵列工作:
$productNumbers[]; //itemNum
$zeroQty[]; //quantity order of zero
$sixQty[]; //quantity order of six
//etc
这意味着我需要甚至初始化多个阵列时,甚至可以不使用它们。看起来我可以拥有一个钝的SQL结构,但是有一个初始化事物的简单方法,或者一个简单的SQL结构和一个对事物进行初始化的钝的方法。
不这样做。 '(itemNum,itemName,itemPrice,strength)'是更好的方法。如果你最终得到了其他一些强度为“one”,“seven”和“eighty”的味道,那么你就不得不在桌子上添加更多的列并浪费大量的空间。通用强度字段可以让你拥有**任意**你想要的力量。然后你为这些记录添加一个itemID字段,并且每个强度都有自己的自动ID和问题解决。 –
我想你需要看看什么样的数据规范化,这是ZZ-bb实现的。 – CAO