在关系数据库中是空的坏

时间:2012-11-14 02:25:48

标签: sql null relational-database

有些人告诉我,关系数据库中的null是邪恶这是真的还是只是主观的?

2 个答案:

答案 0 :(得分:1)

我不会把它们称为邪恶,但总的来说,数据管理世界在没有空值的情况下会更好。我们今天所知道的空是SQL的一个特性,而不是关系模型本身。将空值引入数据库系统以及由此产生的错误必须使该行业多年来花费数百万美元。

我不能比this video中的Chris Date更好。

答案 1 :(得分:0)

答案:

我相信黑白答案......是的,关系数据库中的空值很糟糕。一些人(包括高级DBA)会争辩说,对于这个和其他人来说,一些NULL值是好的,但这就像说油箱中的一些水是可以的。是的,从技术上讲,一辆汽车仍然可以运行,虽然很差,水箱里有一些水,但是如果可以的话,你不会避开它吗?数据库中的NULL值越多,您为报告编写的SQL就越多。

如果数据是可选的,那么商业模式显然不会“需要”它,所以你最好不要将其删除或强制执行,以便必须捕获它。

<强> Recomendation

对于寻找此问题和类似问题答案的个人,我不能建议Database Design for Mere Mortals: second edition足够强大。它是由软件架构师向我推荐的,我还没有遇到任何推荐其他任何东西的人。我实际上购买了两份以防万一。

同一作者还有一个较新的Database Design for Mere Mortals: third edition。我还没有购买,所以我不能说好或坏。

<强>

<强>

个人注意事项:至于此问题&amp;答案是“主要以意见为基础”,请记住,没有相反逻辑证据的意见根本不是意见 - 这是事实。如果另一个SSRS或Crystal Reports Analyst / Developer进来并说“NULL值完全没问题”,那么我将删除我的答案。