对计算列进行非规范化时需要权衡哪些因素?

发布于 2024-10-05 23:14:35 字数 225 浏览 5 评论 0原文

我希望我没有在这里问一个太明显的问题。

对于我当前的项目,我正在使用 sql server 2008 设计一个相对简单的数据库。对于其中一个表,我决定引入“计算列”(未持久化)。它的表达式只是其他两个数字列的乘积,其存在的唯一原因是方便(我正在对网页进行一些单向数据绑定)。

然而,我意识到使用计算列违反了第一范式。这让我想知道:权衡是什么?如果我使用计算列的唯一原因是方便,那么它是否比非规范化更重要?

I hope I am not asking a too obvious question here.

For my current project I am designing a relatively simple database using sql server 2008. For one of the tables I have decided to introduce a 'Computed Column' (not persisted). Its expression is simply the product of 2 other numeric columns and its sole reason for existence is convenience (I am doing some one-way databinding to a webpage).

I realized however that using a computed column violates the first normal form. This got me wondering: Wat are the trade-offs? If my only reason for the computed column is convenience, does it outweigh the denormalization?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱本泡沫多脆弱 2024-10-12 23:14:35

“使用计算列违反了第一范式”:根本不是!它不会被存储,而是始终使用最新数据重新计算。所以这是一个很好的解决方案,就像在视图中拥有一个计算列一样。

"using a computed column violates the first normal form": not at all ! It's not stored, it is re-calculated with the latest data at all time. So it is an excellent solution, just like having a calculated column in a view.

巴黎盛开的樱花 2024-10-12 23:14:35

它的表达就是简单的产品
2 个其他数字列及其
存在的唯一理由是
方便(我正在做一些单向
数据绑定到网页)。

然后将计算放入 SELECT 语句中,而不是放入数据库中。

Its expression is simply the product
of 2 other numeric columns and its
sole reason for existence is
convenience (I am doing some one-way
databinding to a webpage).

Then put the calculation in your SELECT statement, not into the database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文