gpt4 book ai didi

database-design - 淹没在虚无的海洋中

转载 作者:行者123 更新时间:2023-12-04 05:27:14 25 4
gpt4 key购买 nike

我继承的一个应用程序跟踪对 Material sample 执行的实验室测试结果。数据存储在一个表 (tblSampleData) 中,主键是 SampleID,235 列代表潜在的测试结果。问题是每个样本只执行几个测试,所以每行包含超过 200 个空值。实际上,还有一个类似的表 (tblSampleData2),其中包含另外 215 个主要为空的列和一个 SampleID 的主键。两个表是一一对应的,大多数SampleID在两个表中都有一些数据。 然而,对于每个 SampleID,很容易就有 400 个空列!

这是糟糕的数据库设计吗?如果是这样,哪个范式规则被破坏了?如何查询此表以确定哪些列组通常用数据填充?我的目标是拥有 45 个表,其中包含 10 列和更少的空值。我怎样才能做到这一点?如何避免破坏现有应用程序?

到目前为止,这些表有大约 200,000 条样本记录。用户要求我为更多测试添加更多列,但我更愿意构建一个新表。这是明智的吗?

最佳答案

我不确定设计是否真的那么糟糕。 NULL 值实际上应该相对便宜地存储。在 SQL Server 中,每一行都有一个内部位字段(或多个字段),用于指示哪些列值为 NULL。

如果应用程序的性能不需要改进,并且由于更改表架构而导致重构的成本 yield 不是正的,那么为什么要更改它呢?

关于database-design - 淹没在虚无的海洋中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com