我应该标准化这些字段吗?

Should I normalise these fields?

我很伤心。我正在处理很难处理的数据; a "job" 目前有超过 100 列。

我将所有列都放入作业中,因为每次我获得作业的信息时,99.99% 的时间我都需要 所有 的数据。因此,如果我是一名学生,拆分它可能会让我获得更好的成绩,但每次我加载数据时它都会简单地分解成关节。

我觉得很难决定的一个例子是货物。一艘船可以装载一个(80% 的时间)、2 个(99% 的时间)或 3 个(1% 的时间)货物。 Never 4. 以1:n关系存货很容易,但这也意味着:

但是,现在我的数据库中有这些列:

cargoId1, cargoDescription1, contractTonnage1,
contractTonnageTolerance1, commentsOnTonnageTolerance1, 
tonnageToBeLoaded1, tonnageLoaded1

cargoId2, cargoDescription2, contractTonnage2, 
contractTonnageTolerance2, commentsOnTonnageTolerance2, 
tonnageToBeLoaded2, tonnageLoaded2

cargoId3, cargoDescription3, contractTonnage3, 
contractTonnageTolerance3, commentsOnTonnageTolerance3, 
tonnageToBeLoaded3, tonnageLoaded3

你会怎么做?想法?

我必须警告你,你可能会得到反对票,关闭投票 and/or 删除对 "primarily opinion-based" 问题的投票。我认为您的问题主要是基于意见的,因为它本质上是 "pros and cons of normalization" 的同义词。 (ps:我讨厌这会让你投反对票的事实)。

如果您想两全其美,您可以做的一件事是使 table 规范化,并创建一个视图,该视图将 return 使用 PIVOT 的非规范化形式.这样,您的数据的完整性会因规范化而变得更好,并且编写查询也会更容易。会(稍微有一个好的索引)影响性能的连接将被完成,但我认为这是完整性的一个小代价。