我不确定这个问题是否在这里,所以如果不是,请原谅我,我会将其删除。
我正在使用Symfony2,Twig和Doctrine。我正在开发一个ToDo App作为练习,网页看起来像这样:
Today (5 tasks)
- Work (2 tasks)
- clean the desk
- write report
- Home (3 task)
- Pay (2 tasks)
- Internet
- Electricity
- Buy (1 task)
- Eggs
Completed (1 task)
- Work
- Talk to boss
我有类别(工作和家庭),子类别(支付和购买)和具有状态的任务(已完成或未完成)
我的问题是计算剩余的任务。
因为数字显示在任务之前,为了解它,我做了类似的事情:
for each main_category
if the main_category has subcateries
count = 0
for each subcategory
for each task of the subcategory if the task.status is 0 (uncompleted)
set count = count + 1
endfor
endfor
else
count = 0
for each task of the category if the task.status is 0
set count = count + 1
endfor
endif
endfor
(我甚至不确定它是否有效,但我认为你有了这个想法。)
我认为这是复杂的,每次页面刷新时检查都很慢。
我能想到的另一个选择是向类别实体添加一个新字段(未完成任务的数量,或者我可能需要两者 - 已完成和未完成的数量)。但是每当我改变任务的状态时,我也应该改变数字。
说实话,我必须知道哪个更快,哪个更好(所以我问这个问题),但第一个看起来真的很复杂,很难理解。
如果您对如何实现此功能有任何更好的想法,或者如果您没有更好的想法,请告诉我 - 哪种方式更好,哪种更快等等。我真的不想学习编写高质量的代码。 :)
非常感谢您提前!
答案 0 :(得分:0)
Here可能有所帮助。我们的想法是为一个类别创建一个视图,该视图将增加任务数量。因此,您可以创建一个视图,该视图将返回包含在结果中的通知计数所需的数据。请记住添加嵌套任务的数量(来自子类别)。查询视图可以比通常的表稍微慢一点,但我认为它仍然比许多迭代更快。您也会将一些执行时间移到SQL服务器上,这可能是一件好事。