我很伤心。我处理的数据很难处理;一份“工作”目前有100多列。
我把所有的栏都放进工作中,因为每次我得到工作的信息,99.99%的时间我都需要所有的数据。所以,如果我是学生,拆分它可能会让我获得更好的成绩,但每次加载数据时,它都会分解成关节。
我发现很难决定的一个例子是货物。一艘船可以有一个(80%的时间)、两个(99%的时间)或三个(1%的时间)货物。从来没有4。将货物与工作按1:n的比例存储非常容易,但这也意味着:
每次加载作业时,我都需要一个额外的查询来获取货物
积垢是有点痛苦,因为我必须使另一个商店,与权限等。
但是,现在我的数据库中有以下列:
cargoId1, cargoDescription1, contractTonnage1,
contractTonnageTolerance1, commentsOnTonnageTolerance1,
tonnageToBeLoaded1, tonnageLoaded1
cargoId2, cargoDescription2, contractTonnage2,
contractTonnageTolerance2, commentsOnTonnageTolerance2,
tonnageToBeLoaded2, tonnageLoaded2
cargoId3, cargoDescription3, contractTonnage3,
contractTonnageTolerance3, commentsOnTonnageTolerance3,
tonnageToBeLoaded3, tonnageLoaded3
你会怎么做?思想?
1条答案
按热度按时间btxsgosb1#
我必须提醒你,对于一个“主要是基于观点”的问题,你可能会得到否决票、接近票和/或删除票。我认为你的问题主要是基于观点的,因为它本质上是“正常化的利弊”的同义词(附言:我讨厌这样的事实,尽管这会让你落选。
如果您想两全其美,您可以做的一件事是使表规范化,并创建一个视图,该视图将使用pivot返回非规范化的表单。这样,数据的完整性会从规范化中得到改善,编写查询也会更容易。将影响性能的连接(稍微有一个好的索引)将被完成,但这对于完整性来说是一个小代价。