Bonjour,
je souhaite écrire une application pour gérer les entrainements de quelques sportifs. Il y a des disciplines différentes, des besoins différents, etc. donc je vise du "semi libre" : une base capable de gérer des demandes libres par utilisateur (ils suivent les données qu'ils veulent) mais mise en place dans la base par un admin. Connaissant le piège de la base à tout faire dans 2 tables, je me suis orienté vers un modèle Entité Atribut Valeur (http://en.wikipedia.org/wiki/Entity-...te-value_model) déjà discuté sur ce forum (http://www.developpez.net/forums/d77...e-relationnel/ et http://www.developpez.net/forums/d63...on-modele-eav/) mais avec une table par type de données pour conserver un minimum de vérification d'intégrité (un peu comme dans ce modèle : http://www.magentocommerce.com/wiki/...eav_data_model). Pour l'écriture des nombreux join, j'utiliserai un ORM donc pas grave, reste à voir les performances.
J'ai essayé de limiter le nombre de possibilité avec les sports et les catégories. Il y aurait pu y avoir Discipline/Sport/Catégorie/Epreuves et des données rattachées à chaque niveau mais là c'était de la torture . Donc on a Sport (1,n) -- Categorie (1,1).
Exemple : Triathlon (course, vélo, nage) ou Vélo (fond, cardiaque, 50km lancé à l'elastique)
Cf le fichier joint, j'arrive donc à un truc comme ça.
Plusieurs questions :
- votre avis ? J'ai du mal à me lancer dedans car ça ne me semble absolument pas naturel comme schéma
- comment gérer l'intégrité entre les entrainements (qui sont d'une categorie et donc d'un sport) et les données (log quelquechose) rattachées dans la base ? C'est forcément par l'application ?
- est ce qu'une dénormalisation (oui je sais, parler de normalisation pour un schéma comme ça ...) de sport dans entrainement posera des problèmes plus gros que le gain de temps des jointures devenu inutile pour certaines requètes ? Ou le modèle est simplement faux si je veux gérer cette intégrité ? Pareil pour id_user dans tous les logs ?
Merci !
Partager