2013-03-03 64 views
1

我正在开发一个应用程序,我可以选择在数据库中存储布尔值或能够从其他数据库查询中计算它?这将是一个更好的选择?数据库存储vs应用程序逻辑

+0

难以回答的问题。想获得最佳性能方面的建议吗?计算一个值比分贝查询更昂贵吗?我认为你没有提供足够的信息来获取任何信息,但它真的取决于答案。将它存储在数据库中确实没有什么坏处。随后可以随时删除列。 – Private 2013-03-03 21:36:04

+0

如果不知道更多关于你的用例的话,这太难说了。我想在大多数情况下 - 如果可能的话 - 间歇性地简单地保存布尔值会更快,而不是每次都要计算它。或者,你可以创建一个通用的键/值表来保存计算和静态,而不是从那里工作。 – 2013-03-03 22:09:12

回答

0

如果你把它存储在DB

缺点是:

  • 您可能需要更新它时,其他相关领域进行更新或删除(通过触发器或东西一样)。
  • 你的db中会有冗余数据。

优点是:

  • 你的查询会更简单,更具可读性(一般模型和代码的可读性和可维护性将改善)

  • 你的查询会更快。

考虑这些问题如此决定:

  • 是你正在谈论容易计算领域还是需要更复杂的过程来计算? (涉及例如加入或查询多个表格)

  • 该值是否经常变化?是否经常更新相关字段?

  • 数据是如此巨大以至于冗余布尔型字段有什么区别? (不太可能)