[APICLOCK] 2 - Les données

Rédigé par jeromef aucun commentaire


20 août 2014 Python, Raspberry, Apiclock mcd mld développement modèle de données radio réveil


Parcequ'un projet ne finit bien que s'il commence bien, se pose rapidement la question des données.
Comment les ordonner, les classer... bref faire ce qu'on appelle un MCD = Modèle Conceptuel de Données
Ceci va nous servir pour définir la BDD = Base De Données, structurer les requêtes...

Pour un petit projet comme le notre il parait que ce n'est pas essentiel et pourtant ca aide beaucoup car pose des questions intéressantes du type : la gestion des média n'est elle possible qu'au travers les playlist ou pour chaque user !

J'espère expliquer clairement dans cet article les enjeux de cette questions qui ne sont pas triviaux et ne se sont révélés pour moi qu'à la réalisation du CDC ... et aussi largement grâce à l'aide de Richard_35 du fabuleux site developpez.net à une remarque de Disciple :)

Voici la première version :
De nombreux problèmes avec cette version : pas de gestion des médias par les user...

Pour faire un bon MCD il nous faut d'abord

Définir les règles de gestion

• 1 user possède 1 et 1 seul rôle;
• 1 rôle peut être affecté à plusieurs user ;
• 1 user peut avoir 0 ou plusieurs alarmes ;
• 1 alarme n'appartient qu'à 1 et 1 seul user ;
• 1 user peut avoir 0 ou plusieurs playlist ;
• 1 playlist n'appartient qu'à 1 et 1 seul user ;
• 1 alarme ne fait référence qu'à 1 et 1 seul média;
• 1 média peut concerner 0 ou plusieurs alarmes;
• 1 user peut gérer des médias;
• 1 média est géré par un 1 et 1 seul user;
• 1 playlist fait référence à 1 ou plusieurs média ;
• 1 média peut concerner 0 ou plusieurs playlist;
• 1 alarme peut avoir 0 ou 1 playlist;
• 1 playlist est associée à 0 ou 1 alarmes.

Définir le MCD : relation des entités entre elles


Pour info le rond jaune avec croix définit une contrainte qui devra être défini par du code que l'on apelle "trigger"

Définir le MLD : Tables entre elles


Nous voila prêt !
Bien sur cela n'intègre pas beaucoup de points qui pourront être envisagés dans la V2 ou un T2 de développement tel que:
  • Personnalisation
  • Reminder
  • ...
Ca vous convient ? Vous voyez d'autres éléments / fonctionnalités à rajouter ?

Pour info je vous renvois sur l'excellent site de developpez.net sur lequel vous retrouverez la discussion avec Richard_35 ayant abouti à ce document

Sinon pour simplifier:


ou ca:

Partager cet article sur :


Écrire un commentaire

Quelle est la première lettre du mot vmbit ? :