如何使用多值字段规范化 table?
How do you normalize a table with a multi-valued field?
我想将分期 table 标准化为两个 table。输入数据的字段之一包含多个由分号分隔的值。
DATETIME | FILENAME | MULTIVALUEDFIELD
7-22-18 | somefile.txt | value1;value2;value3
我相信数据专家们知道这是怎么回事,但我希望这样规范化:
ID | FILENAME |
1 | somefile.txt
和
ID | SINGLEVALUES | OTHERTABLEID
1 | value1 | 1
2 | value2 | 1
3 | value3 | 1
对于格式问题,我们深表歉意:我没有找到执行 table 的方法。任何帮助都会很棒!
听起来你们真的有many-to-many关系;一个filename
可以引用很多singlevalues
,而singlevalues
可以出现在很多filename
中。
传统的表示方式是使用桥 table,它包含对 filename
和 singlevalues
的主键的外键引用,并且,如果它适用于您的设计,代表关系的任何其他字段。
dbo.filename
+-------------+---------------+
| filename_sk | filename |
+-------------+---------------+
| 1 | somefile.txt |
| 2 | otherfile.txt |
+-------------+---------------+
dbo.value
+----------+--------+
| value_sk | value |
+----------+--------+
| 1 | value1 |
| 2 | value2 |
| 3 | value3 |
+----------+--------+
dbo.bridge
+-------------+----------+
| filename_sk | value_sk |
+-------------+----------+
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 2 | 3 |
+-------------+----------+
我想将分期 table 标准化为两个 table。输入数据的字段之一包含多个由分号分隔的值。
DATETIME | FILENAME | MULTIVALUEDFIELD
7-22-18 | somefile.txt | value1;value2;value3
我相信数据专家们知道这是怎么回事,但我希望这样规范化:
ID | FILENAME |
1 | somefile.txt
和
ID | SINGLEVALUES | OTHERTABLEID
1 | value1 | 1
2 | value2 | 1
3 | value3 | 1
对于格式问题,我们深表歉意:我没有找到执行 table 的方法。任何帮助都会很棒!
听起来你们真的有many-to-many关系;一个filename
可以引用很多singlevalues
,而singlevalues
可以出现在很多filename
中。
传统的表示方式是使用桥 table,它包含对 filename
和 singlevalues
的主键的外键引用,并且,如果它适用于您的设计,代表关系的任何其他字段。
dbo.filename
+-------------+---------------+
| filename_sk | filename |
+-------------+---------------+
| 1 | somefile.txt |
| 2 | otherfile.txt |
+-------------+---------------+
dbo.value
+----------+--------+
| value_sk | value |
+----------+--------+
| 1 | value1 |
| 2 | value2 |
| 3 | value3 |
+----------+--------+
dbo.bridge
+-------------+----------+
| filename_sk | value_sk |
+-------------+----------+
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 2 | 3 |
+-------------+----------+