par roubech » 01 Nov 2013 à 13:29
je pense qu'il faut réfléchir sur une copie de la base de prod et pas travailler directement sur la base de prod
ensuite dissocier le cas d'une nouvelle saisie et le cas de la reprise des données existantes
Pour la nouvelle saisie il faut peut-être mettre 2 champs numériques sans décimal avec éventuellement un contrôle supplémentaire pour vérifie que le champ des minutes est inférieur à 60 et celuis des heures inférieur à 24
Ensuite, si tu en as besoin pour ensuite faire des totaux dans une vue ou autres, tu peux calculer un champ caché durée en minutes = 60 x champ_heures + champ_minutes ...
Pour la reprise, il faudrait une extraction de toutes les valeurs existantes pour être sur de traiter tous les cas, mais à priori tu auras au moins les cas :
- un nombre entier stocké au format texte
- un nombre entier stocké au format nombre
- un nombre décimal entier stocké au format texte avec virgule
- un nombre décimal entier stocké au format texte avec point
- un nombre décimal entier stocké au format nombre
- une chaine de texte composée de 2 nombres séparés par la lettre h
- une chaine de texte composée de 2 nombres séparés par le caractère :
....
pour tout ces cas, il faut préparer un agent de reprise qui va regarder le contenu existant et tester dans quel cas tu es et générer les 2 nouveaux champs en fonction du cas
tester cet agent sur ta copie de base pour être sur que tous les cas sont bien traités
ensuite pour le passage en prod il faut s'assurer que personne n'accède à la base pendant la bascule
appliquer le nouveau design et faire tourner l'agent sur la base de prod
vérifier et réouvrir les accès