begin process at 2012 05 28 21:21:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Format table mysql pour stocker dates récurentes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Format table mysql pour stocker dates récurentes

mardi 26 juillet 2011 à 10:48:59 | Format table mysql pour stocker dates récurentes

hdh

Bonjour
Je voudrais faire une sort de module GTD ("Get Things Done" : sorte d'agenda pour l'aide à la gestion de projet) en php & mysql.
Pour cela je vais associer des 'actions à mener' à des dates... pour ce qui est des dates absolues (exemple 'à faire pour le jeudi 12 avril 2012') cela ne pose pas de soucis... par contre pour ce qui est des dates récurrentes je ne sais pas trop comment m'y prendre (exemple : 'à faire tous les 25 décembre', 'à faire tous les premiers jours du mois').
Ce genre de fonctionnalité se retrouve très communément dans outlook ou google-agenda ou les services de cron.

Auriez vous des pistes de réflexion, des exemples de script (le plus proche que j'ai trouvé est http://www.phpcs.com/code.aspx?ID=31246 ) ?

>> Ma question est : quel est le dessin d'enregistrement optimal pour stocker des dates d'actions récurrentes ?

D'avance grand merci pour vos conseils avisés !!
Cordialement
H

le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
mardi 26 juillet 2011 à 14:22:44 | Re : Format table mysql pour stocker dates récurentes

TychoBrahe

Salut,

Pour ma part, je serais tenté d'utiliser un simple VARCHAR (ou autre type du même genre) afin de stocker la représentation ISO 8601 de la date ou de la répétition de la tâche. Je t'invite à lire au moins la page wikipedia de cette norme qui est très intéressante pour représenter sous forme de chaine de caractère les dates et heures absolus, leurs intervals et les répétitions.
mercredi 3 août 2011 à 17:04:04 | Re : Format table mysql pour stocker dates récurentes

hdh

Réponse acceptée !
bonjour,
Merci pour l'atricle : très intéressant !
en afit j'ai changé d'épaule en ce qui concerne mon script en me basant sur une top idée
[ Lien ]

grosso modo :
Code PHP :
$query2 = "UPDATE tasks SET `date` = DATE_ADD(`date`, INTERVAL `interval` " . $typeArray[$row->type] . " ) WHERE id = '" . $row->id . "'";
$result2 = mysql_query($query2) or die("Error in query: " . mysql_error()); } 


avec une table de ce type


The "id" column stores a unique identifier for each task. This identifier is created by MySQL by automatically incrementing the identifier of the previous record.

The "msg" column stores a message describing the task.
The "type" column specifies the type of recurrence, whether daily (D), monthly (M) or yearly (Y).
The "interval" column specifies the interval between each recurrence of the task.
The "date" column specifies the date on which the task will run next.
The "owner" column specifies the email address to which the task notification should be sent.


Code :
mysql> INSERT INTO tasks (`id`, `msg`, `type`, `interval`, `date`,
mysql> `owner`)
VALUES ('', 'Run once', 'D', 0, '2003-06-25', 'webmaster@domain');



parfaitement adapté à ma problématique :-)
merci
H


le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus
mercredi 3 août 2011 à 17:37:04 | Re : Format table mysql pour stocker dates récurentes

TychoBrahe

Avec ton système comment peut-tu représenter, par exemple "12 occurrences séparées entre elles de un an et deux mois, en commençant la première le 12 avril 1985 à 23h20 et cinquante secondes". Au format ISO 8601 c'est R12/1985-04-12T23:20:50/P1Y2M. On peux continuer très longtemps sur la description des cas non gérés par ton système car ils sont nombreux.

Le système que tu veux utiliser est beaucoup trop limité, tu perd bêtement des fonctionnalités en et plus tu te retrouves avec des champs superflus. Sérieusement, tu devrais remplacer les champs type, interval et date par un seul champ stockant l'ISO 8601 de la tâche, en plus de simplifier ton schémas de db tu ajoute des tonnes de fonctionnalités d'un seul coup. Seule la sélection des entrées sera un peu plus complexe... et encore pas certain.

J'ajouterais que interval est un mot clé réservé par MySQL. Bien qu'il soit possible de l’utiliser avec l'aide de backquotes (`interval`), ceci reste une mauvaise idée de nom de champ. Il en est de même avec date, bien que vu le nombre incroyable de mauvais développeurs, MySQL a permis d'utiliser ce mot clé sans avoir besoin des backquotes.


Cette discussion est classée dans : table, mysql, format, dates, stocker


Répondre à ce message

Sujets en rapport avec ce message

mp3 MySql [ par RealKEV1 ] Bonjour,On peut stocker des LONGBLOB dans une table MySql comme des images, mais peut-on aussi le faire avec de petits fichiers mp3???Je pense que cel Récuperer dates Mysql [ par infosub ] Bonjour,Je recupere deux dates d'un formulaire sur une BDD Mysql "date_a "et "date_b" (par exemple 05/03/2005 et 09/05/2005 ou en format different).Es date et MySQL [ par LaTatadu91 ] Bonjour tout le monde, j'ai une table MySQL qui comporte un champ date au format DATETIME je récupére d'un formulaire une date dans ce format: 2006-0 propriété mysql [ par Arsonbaby ] j'aimerais avoir la propriété lors de la création d'un table avec mysql qui me permet de stocker des fichier pdf, en supposant que je créé une table a Problème avec mon code php [ par pierrehs ] Bonjour, Je suis en train de créer un installateur automatique pour cakephp Mais j'ai une erreur. Pouvez-vous m'aidez Voici le code d'installation [ Récupérer les valeurs de la première colonne d'une table dans un tableau [ par etincelle01 ] Bonsoir, Dans PHP, il y a la fonction mysql_fetch_array() qui place les enregistrements résultats d'une requête dans un tableau. Mais il n'y a pas de Sortir Infos table MySQL [ par spacedelta ] Bonjour, Cela fait deux jours que j'essaie de trouver la réponse à mon problème. [u]Voici mon projet [/u]: J'utilise Joomla! et Ajaxchat (pour ceux q UPDATE table mysql à partir de radio buttons [ par begueradj ] Hi, J'ai besoin de mettre à jour ma base de données à partir de valeurs récupérées de boutons radio. Pour celà, j'ai simplifié le problème comme sui Probleme interogation 2 table [ par casper77610 ] Bonjour à tous, Voici mon code. Et je vous explique mon problème. [code=php] <?php $db = mysql_connect('localhost', 'root', '') or die('HOST ?'); mysq Calcul entre 2 dates [ par yoannyop ] Salut @ toutes & @ tous. Je dispose de 2 dates (début et fin) au format aaaa-mm-jj hh:mm. J'aimerai un calcul sur la différence entre ces 2 dates dat


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,591 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales