SQL:从列到行,大小系统,时尚

时间:2014-05-13 19:49:01

标签: sql ms-access erp

我挣扎着,希望你能帮助我!该应用程序是MS ACCESS中用于时装零售的ERP系统。

问题:如何在 Table3 中添加一行,并根据文章的大小系统填写文章相应的SizeID1,SizeID2等表2

表1 :包含尺寸系统的文章详情

ArticleID | SizeType
--------------------  
1         | US  
2         | EU  

表2 :不同地区的不同规模系统

SizeID | Size | SizeType 
------------------------ 
1      | S    | US
2      | M    | US
3      | L    | US
4      | XL   | US
5      | 36   | EU
6      | 38   | EU
7      | 40   | EU

表3 :订单详情

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的insery查询的目标。然后我可以输入相应大小的金额。谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

您在此处尝试实现的目标并不完全清楚,但我认为这可能是因为您的数据库设计有点破碎。

您可能习惯使用电子表格,因为您似乎已将Table3设计为电子表格。任何时候你最终在数据库表中重复字段(例如,Size1,Size2,Size3 ....),那么它就是你需要更多标准化的标志。

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

我怀疑你需要更像这样的东西:

文章表:

ArticleID | ArticleName   | SizeType(FK to SizeType table)
1         | Blue T-shirt  | 1
2         | Red T-shirt   | 2

SizeType表:

SizeTypeID | SizeTypeDescription
1          | US
2          | EU

尺寸表:

SizeID | SizeType(FK) | SizeDescription
1      | 1            | 38
2      | 1            | 40
3      | 2            | M
4      | 2            | L

项目表:

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

订单表:

OrderID | CustomerID (FK) | OrderDate | etc. (other info you need to store about an order)
1       | 2458            | 01/01/2001|
2       | 3452            | 02/02/2002|

订单明细表:

OrderDetailsID | OrderID(FK) | ItemID (FK) | Quantity
1              | 1           | 3           | 6
2              | 1           | 4           | 3
3              | 2           | 1           | 1

所以在这里连接所有东西,ID 2458的顾客订购了6x尺寸M红色T恤和3x尺寸L红色T恤,ID为3452的顾客订购了1x尺寸38蓝色T恤。

注意您还可以在Items表中实际拥有PRICE字段(如果价格因项目大小而异)或在Article表中(如果每种尺寸的价格相同)。 CustomerID还会链接回包含客户详细信息的表格(姓名,地址,用户名/密码等)。

您可能还有其他我未在此处展示的内容,例如在您的文章表或您的项目表中,您可能会有一个supplierID,告诉您从哪个商店购买该商品,如以及vendorItemNo,它是一个唯一的代码(条形码?),用于订购该项目。

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