【发布时间】:2021-05-13 21:37:31
【问题描述】:
我有包含这样数据的源
+-------+-------+---------+--------------+----------------+-------------+--------------+
| ID | Name | Type | Product_Area | Product_status | Spare_value | Service_Time |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10001 | Motor | Product | Electrical | Active | | |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10002 | Fan | Product | Mechanical | Running | | |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10003 | Screw | Spare | | | 10 | |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10004 | Nut | Spare | | | 20 | |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10005 | Kit | Service | | | | 1 year |
+-------+-------+---------+--------------+----------------+-------------+--------------+
| 10006 | Oil | Service | | | | 6 months |
+-------+-------+---------+--------------+----------------+-------------+--------------+
我必须对此进行规范化并放入不同的表中。因为前 3 列对于所有类型都是通用的,所以 Product_Area 和 Product_status 只会出现在 Product 类型中。同样,Spare_value 和 service_time 分别用于 Spare 和 Service。要求是创建一个 UID 并将其映射到其他表中,如下所示。
MASTER
+-----+-------+-------+---------+
| UID | ID | Name | Type |
+-----+-------+-------+---------+
| 1 | 10001 | Motor | Product |
| 2 | 10002 | Fan | Product |
| 3 | 10003 | Screw | Spare |
| 4 | 10004 | Nut | Spare |
| 5 | 10005 | Kit | Service |
| 6 | 10006 | Oil | Service |
+-----+-------+-------+---------+
PRODUCT
+-----+--------------+----------------+
| UID | Product_Area | Product_status |
+-----+--------------+----------------+
| 1 | Electrical | Active |
| 2 | Mechanical | Running |
+-----+--------------+----------------+
SPARE
+-----+-------------+
| UID | Spare_value |
+-----+-------------+
| 3 | 10 |
| 4 | 20 |
+-----+-------------+
SERVICE
+-----+--------------+
| UID | Service_Time |
+-----+--------------+
| 5 | 1 year |
| 6 | 6 months |
+-----+--------------+
我创建了一个IDENTITY 并创建了第一个表MASTER,没有任何问题。但我不知道如何链接和创建其他表。我已经创建了foreign key,但我仍然不知道如何获取 UID 并相应地映射 UID。请提出建议。
【问题讨论】:
-
在第一个表 (
master) 中插入数据后,您可以通过将主数据连接到源数据并使用过滤器将insert ... select ...插入其他表。它能解决你的任务吗? -
这个不清楚。你到底是什么意思“我必须正常化”?鉴于什么,你被告知要做什么?你究竟在什么过程中陷入了困境?裸词“规范化”并不意味着特定的事情。重新排列表格以分隔子类型不是标准化用于 1NF 和更高 NF 的两件事中的任何一个。你的研究结果是什么? How to Askhelp centerMeta Stack OverflowMeta Stack Exchange
标签: sql database-design ssis sql-server-2012