首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:从列到行、大小系统、方式

SQL:从列到行、大小系统、方式
EN

Stack Overflow用户
提问于 2014-05-13 19:49:00
回答 1查看 80关注 0票数 1

我在挣扎,希望你能帮我一把!该系统是一个应用于服装零售业的ERP系统。

问题:如何根据Table2的大小系统在Table3中添加一行与文章对应的SizeID1、SizeID2等进行填充

Table1:包含size system的文章详细信息

代码语言:javascript
复制
ArticleID | SizeType
--------------------  
1         | US  
2         | EU  

Table2:不同地区的不同规模系统

代码语言:javascript
复制
SizeID | Size | SizeType 
------------------------ 
1      | S    | US
2      | M    | US
3      | L    | US
4      | XL   | US
5      | 36   | EU
6      | 38   | EU
7      | 40   | EU

Table3:订单详细信息

代码语言:javascript
复制
OrderID | ArticleID | Size1 | Amount1 | Size2 | Amount2 | Size3 | Amount3  
------------------------------------------------------------------------- 
1       | 1         | S     | 1       | M     | 3       | L     | 1  
2       | 2         | 36    | 2       | 38    | 1       | 40    | 3
3       | 2         | 36    |         | 38    |         | 40    |

带有OrderID =3的行是ArticleID 2插入查询的目标,然后我可以输入相应大小的金额。谢谢你的帮助!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 16:02:57

这里还不完全清楚您想要实现什么,但我认为这可能是因为您的数据库设计有点不完善。

您可能已经习惯了使用电子表格,因为您似乎设计了您的Table3,就好像它是一个电子表格一样。任何时候,当你在数据库表中重复字段时(例如。Size1,Size2,Size3.)这是一个信号,表明你需要更多的正常化。

请阅读数据库规范化:http://www.studytonight.com/dbms/database-normalization.php (还有谷歌一般用于数据库规范化以获取更多信息)。

我想你需要更多这样的东西:

物品表:

代码语言:javascript
复制
ArticleID | ArticleName   | SizeType(FK to SizeType table)
1         | Blue T-shirt  | 1
2         | Red T-shirt   | 2

SizeType表:

代码语言:javascript
复制
SizeTypeID | SizeTypeDescription
1          | US
2          | EU

尺寸表:

代码语言:javascript
复制
SizeID | SizeType(FK) | SizeDescription
1      | 1            | 38
2      | 1            | 40
3      | 2            | M
4      | 2            | L

项目表:

代码语言:javascript
复制
ItemID | ArticleID(FK) | SizeID(FK)
1      | 1             | 1      'Blue T-shirt size 38
2      | 1             | 2      'Blue T-shirt size 40
3      | 2             | 3      'Red T-shirt size M
4      | 2             | 4      'Red T-shirt size L

订单表:

代码语言:javascript
复制
OrderID | CustomerID (FK) | OrderDate | etc. (other info you need to store about an order)
1       | 2458            | 01/01/2001|
2       | 3452            | 02/02/2002|

订单明细表:

代码语言:javascript
复制
OrderDetailsID | OrderID(FK) | ItemID (FK) | Quantity
1              | 1           | 3           | 6
2              | 1           | 4           | 3
3              | 2           | 1           | 1

所以在这里把所有的东西联系起来,ID 2458的客户已经订购了6倍大小的M红色T恤和3倍大小的L红色T恤,而ID 3452的客户已经订购了1倍大小的38蓝色T恤。

注意到您实际上在Items表中(如果价格随项目的大小而变化)或在PRICE表中(如果每个大小的价格是相同的)中都有一个PRICE字段。CustomerID还将链接回包含客户详细信息(名称、地址、用户名/密码等)的表。

您还可能有其他我在这里没有显示的东西,例如,在您的“文章”表或“项”表中,您可能会有一个supplierID,它告诉您从谁那里购买该项目,以及一个supplierItemNo,它将是一个唯一的代码(条形码?)你用来订购那件东西的。

一旦您的数据库结构正确,编写查询以插入记录等就容易多了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23640304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档