https://openclassrooms.com/forum/sujet/requete-sql-complexe-ab5a2
Just change the value of the _TABLE_NAME
variable (constant):
DO $$
DECLARE
_fk TEXT[];
_primary_key TEXT;
_column TEXT;
_foreign_keys TEXT[];
_TABLE_NAME CONSTANT TEXT NOT NULL := 'the name name of the table to migrate';
Mon approche consiste à pré-générer dans une table la liste de tous les créneaux (table slots) possibles. C'est beaucoup plus efficace et facile ensuite à exploiter car chercher un créneau disponible est une simple requête SQL (jointure LEFT JOIN). Cette pré-génération doit être exécutée en cron (ou au moins en CLI), ce n'est pas grave si elle devait mettre une heure à s'exécuter, surtout que c'est une tâche qui est faite d'avance, l'important c'est que l'application ne soit pas lente pour vos clients à trouver un créneau disponible (sinon elle risque de tomber à la moindre charge - utilisateurs simultanés). Imaginez, sans ce prémâchage sur lequel se baser, comment trouver un rendez-vous disponible ? En tenant compte des jours + horaires d'ouverture ainsi que des jours fériés : ça demanderait beaucoup de calculs et possiblement beaucoup d'allers/retours PHP/base de données pour chaque recherche :/
Avantages de ces slots précal
https://openclassrooms.com/forum/sujet/php-expressions-rationelles-suite-2
Sortie :
1 Casemiro : 7.54
2 Eden Hazard : 7.50
3 Daniel Carvajal : 7.28
4 Toni Kroos : 7.26
5 Nacho : 7.21
6 Marcelo : 7.06
<?php | |
// ev = escape value | |
function ev(object $dbh, $value) { | |
if (is_null($value)) { | |
return 'NULL'; | |
} else if (is_int($value)) { | |
return $value; | |
} else if ($value instanceof \DateTimeImmutable) { | |
$value = $value->format('Y-m-d'); | |
# /!\ no return here /!\ |