【问题标题】:How would you create a clothing size db structure?您将如何创建服装尺寸数据库结构?
【发布时间】:2012-04-18 08:53:09
【问题描述】:

我需要在电子商务网站上设计服装尺码结构。
我们用的是mysql

现在,我们有这样的东西:

product(product_id, name, size_id)  
(12, 'formal shoes', 2)  
(224, 'pants', 16)  

size(size_id, gender, category_id)  
(2, 'm', 5)  
(16, 'm', 8)  
(17, 'm', 8)  
(18, 'm', 8)  

category(category_id, category_name)  
(5, 'shoes'),  
(8, 'pants')

size_chart(size_id, country_code, value)  
(2, 'US', '7')  
(2, 'UK', '5')  
(16, 'US', '33w34l')  
(17, 'US', '33w32l')  
(18, 'US', '33')  
(16, 'EU', '48')  
(17, 'EU', '48')  
(18, 'EU', '48')  

现在,如您所见,问题在于 EU 48 有 3 个美国等效项(它们在美国有所不同),因此根据欧盟输入大小进行排序/过滤会很混乱。
我注意到许多在线商店都犯了这个错误,他们要么将转换留给用户,要么简单地列出每个国际尺寸以供搜索/过滤。

因此,例如,如果用户搜索 US 33w34l 裤子,我想向他展示 size_id 为 16,17 或 18 的裤子。

您将如何构建所有内容?

【问题讨论】:

  • 是的,但这些裤子的尺码都一样吗?我的意思是,如果他正在寻找“33w34l”裤子,他会不会有点惊讶地发现里面也有“33w32l”的裤子?

标签: mysql sql database-design data-modeling


【解决方案1】:

我会给物理尺寸一个 id,然后列出与实际物理尺寸相匹配的尺寸和国家/地区.. 所以

(随机数据与现实毫无相似之处)

SizeID 1 = 
country US  size = 33w 41l
country UK size 16
country uk size 18

SizeID 2 = 
country US size = 34w 41l
country UK size 18
country EU size 14

然后他们在哪个国家/地区选择他们的尺寸,然后您可以搜索具有该 sizeID 的所有项目。

【讨论】:

  • 嗨,很抱歉,我不明白我的示例的区别以及它如何解决我的问题...谢谢
  • 因为,如果我说我减掉了 18 号英国码,你知道那是 sizeID 1 和 2,然后你可以选择任何其他符合该代码的项目。例如 select * from sizes left join items on sizes.sizeid=items.sizeid where sizes.tag = "{data}" - out pops your items
  • 嗯,稍微改变一下你的例子: SizeID 1 = country US size = 32w 34l country UK size 18 country EU size 16 SizeID 2 = country US size = 32w 32l country UK size 18 country EU size 14如果来自英国的人选择英国尺码 18,那么您可以向他展示 size_id=1 或 2 的产品。这很好。如果来自美国的人选择美国尺码 32w 34l,那么他只会看到 size_id=1 的产品。这是错误的,因为英国商店可以添加 18 号商品,而我们不知道它是 id 1 还是 2....
  • 任何尺寸分为 2 个波段的国家都是愚蠢的,但是,它可以作为我的示例中添加尺寸 18 的结果,将回答尺寸 1 或尺寸 2.. 只有毕竟 1 码 18..(如果你在这里买衣服,我可以向你保证,在同一个衣架上,18 码可以小于 14 码,也可以大于 22 码!)
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2010-12-28
  • 2012-08-24
  • 2014-04-14
  • 2017-03-30
  • 1970-01-01
相关资源
最近更新 更多