[Objective] vues.py - Refactoring de la fonction routine_detail
#41
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Sulley/khana#41
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Oyo,
Ta fonction
routine_detail
(au pluriel, cf #...) ressemble à ceci:Donc, si je comprends bien, tu prends ta série, et tu essaies de récupérer les valeurs maximales pour les propriétés
rank
,level
,age_boy
,age_girl
et la somme des difficultés connues.Mais cela signifie que ta base de données est dénormalisée, et potentiellement pas à jour: si aucun utilisateur ne se rend sur cette fonction
routine_details
, la série ne sera jamais mise à jour.Une idée serait de passer par des agrégations (cf. https://docs.djangoproject.com/en/3.1/topics/db/aggregation/#cheat-sheet), avec les fonctions
Sum
etMax
:Ce ne serait pas obligatoirement plus performant (quoique, si
skill_links
est mis en cache via unprefect_related
), mais cela simplifiera beaucoup la lecture du code.Du coup, on peut garder la dénormalisation, à une condition: il faut que l'ajout d'un nouveau skill exige le recalcul des informations de la routine.