gpt4 book ai didi

sql - 列中什么时候为空值 "safe"?

转载 作者:可可西里 更新时间:2023-11-01 07:46:00 26 4
gpt4 key购买 nike

在设计数据库时是否有一般的经验法则允许列为空值与 3nf 规范化?我有一个表,其中一列主要由空值 (85%) 组成,但表大小不超过 10K 条记录(不是很大)。它主要用于日志记录和记录保存,因此大多数事务都是插入和选择,没有更新。我试图同时考虑性能和简化设计。在这种情况下,非规范化或规范化会有很大的好处吗?不同的 RDBMS 的行为是否不同?

最佳答案

避免 NULL 有三个不同的原因。按重要性排序(当然,在我看来)它们是:

  1. 您想正确地对数据建模。

  2. 您想提供一个数据库,以便轻松生成正确的应用程序。

  3. 您想节省磁盘空间。

  4. 您关心性能。

好吧,有四个不同的原因!

在这四个中,我非常关心#1,非常关心#2(特别是因为我也一直是程序员),我真的不太关心#3,因为磁盘空间很便宜也因为#1 和#2 为我消除了任何数据库中的大多数 NULL。至于#4,我从不想为了性能而牺牲正确性——如果我不能确信它是正确的,那么我得到答案的速度有多快都没有关系。如果我无法在建模良好的 SQL 数据库中达到我的性能目标,那么 SQL 数据库可能不适合这项工作。

所以对我来说最重要的问题是“单表方法是否正确地为您要存储的数据建模?”同样重要的是“单表方法是否会使针对数据库编写错误代码变得太容易了?”我想强制自己(或我之后的任何程序员)必须将数据放在正确的位置。查看您的数据并回答这些问题,它应该可以帮助您决定正确的结构。

关于sql - 列中什么时候为空值 "safe"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808301/

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