mysql - 我应该正常化还是不正常化?如果是的话怎么办?

标签 mysql database-design database-normalization database-optimization table-structure

目前我有一个表,其中有一列包含 CSV。我不确定是否要标准化整个表。问题是 configuration 这一列可能包含最多 50 个或更多不同类型的值。例如,在下表中,它是 18, 20 ,但对于同一列中的其他数据,它可能是 0, 20, 21, 22, 23, 25, 26, 27, 40, 52, 54, 55 等等,但这些值是唯一的。他们永远不会重复。

我不知道它的最大数量是多少(可能会有所不同),所以这就是我将其保存在 CSV 中的原因。我目前很难将其标准化,或者更确切地说,我不确定是否应该将其标准化。这里有什么帮助吗?

id    tester_type    device_id      board_id        configuration
75946   UFLEX           997           220   
44570   UFLEX           450           220               18,20
44569   UFLEX           449           220               18,20
44568   UFLEX           448           220               18,20
44567   UFLEX           447           220               18

注意:Configuration 列也包含空值或空格。

最佳答案

I do have to query against it so I guess I have to normalize it.

是的,你知道:)

If do create the table, does that mean I have to create for every possible configuration value?

规范化结构的一个示例是:

join table
==========
test_id configuration_id (spanning unique constraint)
------- ----------------
44570   18
44570   20
44569   18
44569   20
44569   20
44568   18
44568   20
44567   18

configurations table
====================
configuration_id
----------------
18
20

如果您使用的是 InnoDB,连接表的每一列也是其各自父表的外键。

关于mysql - 我应该正常化还是不正常化?如果是的话怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971722/

相关文章:

database - 在数据库列中存储分隔列表真的那么糟糕吗?

mysql - 有人知道 postgresql 的全文引擎名称吗?

java - Mysql连接问题或者我的代码问题

ruby-on-rails - 复合主键与唯一对象 ID 字段

sql - 为引用特定结果的用户设计数据库表

sql - 串行类型的外键 - 确保始终手动填充

mysql - 重写mySQL语句

mysql - 其中公司 =(不同公司)

mysql - MySQL在两个表之间连接信息的两条路由是否违反规范化规则?

database - 为什么不使用所有的正常形式?