Django 数据库存储与应用程序逻辑

Django 数据库存储与应用程序逻辑,django,django-models,Django,Django Models,我正在开发一个应用程序,我可以选择在数据库中存储一个布尔值,或者从其他数据库查询中计算它??如果您将其存储在数据库中,那么哪个选项更好 缺点是: 当其他相关字段被更新或删除时(通过触发器或类似的方式),您可能必须更新它 您的数据库中将有冗余数据 优点是: 您的查询将更简单、可读性更强(通常,您的模型和代码可读性和可维护性将得到提高) 您的查询会更快 因此,在考虑这些问题后决定: 你所说的领域计算起来容易还是需要一个更复杂的过程来计算?(例如涉及连接或查询多个表) 值经常变化吗?相关字段

我正在开发一个应用程序,我可以选择在数据库中存储一个布尔值,或者从其他数据库查询中计算它??如果您将其存储在数据库中,那么哪个选项更好

缺点是:

  • 当其他相关字段被更新或删除时(通过触发器或类似的方式),您可能必须更新它
  • 您的数据库中将有冗余数据
优点是:

  • 您的查询将更简单、可读性更强(通常,您的模型和代码可读性和可维护性将得到提高)

  • 您的查询会更快

因此,在考虑这些问题后决定:

  • 你所说的领域计算起来容易还是需要一个更复杂的过程来计算?(例如涉及连接或查询多个表)

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

  • 数据是否如此庞大,以至于冗余的布尔字段会产生任何影响?(可能性不大)


很难回答的问题。你想得到关于最佳性能的建议吗?计算值是否比执行db查询更昂贵?我认为你没有提供足够的信息来获取任何信息,但这确实取决于答案。将其存储在数据库中肯定没有坏处。你可以在事后删除该列。在不了解更多用例的情况下很难说。我认为在大多数情况下——如果可能的话——只需间歇性地保存布尔值,而不是每次都计算布尔值,会更快。或者,您可以创建一个通用键/值表来保存计算和静态数据,而不是从该表开始工作。