如何使用多值字段规范化 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,它包含对 filenamesinglevalues 的主键的外键引用,并且,如果它适用于您的设计,代表关系的任何其他字段。

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 |
+-------------+----------+