Bonjour,

Voila je rencontre un petit problème avec l'optimisation de ma base de données.

Ce que je fais

Je suis actuellement entrain de bosser sur un projet RoR avec une base de données MySQL. Le but du site est de permettre à des élèves et des professeurs de mettre leurs cours en ligne.

Je précise que j'utilise Ruby On Rails pour développer le site.

Les élèves peuvent mettr en ligne toutes sortes de cours (Math, français, etc.)
Les professeurs peuvent seulement mettre en ligne leur cours (Logique car un professeur de français ne va pas mettre en ligne un cours de maths).

Je gère l'auth de mon site avec la gem devise. Et pour conclure, pour savoir si l'utilisateur est un professeur ou un élève j'ai inclus un booléen dans la table users.

Ce que je veux

Dans un soucis d'optimisation de la base de données, je cherche une solution pour me répéter un minimum au sein de ma table et mon code. Le gros problème viens de la condition de mise en ligne des professeurs. Comment le gérer pour ne pas devoirs ce répéter et lier les professeurs à leurs cours ?

J'avais précédemment penser à une tables matières qui est directement lier à chaque professeur mais comment les liers ensemble car c'est un simple booléen qui défini le rôle de l'utilisateur.. J'ai également penser à rentrer les cours avec les noms des professeurs ce qui me permettrait de gérer directement dans mon controller (Si utilisateur = prof alors cat_cours = nomprof). Mais je pense pas que sa soit le plus optimisée possible !

Bref c'est une belle surchauffe du cerveau et je voudrais avoir votre avis ami développeur !

5 réponses


Balsakup
Réponse acceptée

Voilà le MLD que je te propose, si j'ai bien compris ta demande.

La relation être référent s'applique seulement si is_professor est à true (A faire au niveau de ton code)

Salut,

La solution pour une bonne base de données, c'est le MCD ;)

On commence toujours une base avec ça, ça permet de la visualiser graphiquement et de la travailler avant de la créer.

Siopy
Auteur

Oui exactement Balsakup je suis d'accord (d'ailleurs j'ai utiliser PowerAMC pour le faire correctement). Mais même après une profonde recherche je ne trouvais pas de solution pour optimisé au maximum les professeurs et leurs restrictions de mise en ligne.

Siopy
Auteur

Un grand merci à toi c'est vraiment un bon MLD. Tu utilise quoi pour le générer ?

J'utilise JMerise