Je construis un système de gestion des bénévoles et je vais avoir des problèmes de conception DB:problème de conception:
Pour expliquer le processus: Les bénévoles peuvent vous inscrire pour les comptes. Les bénévoles rapportent leurs heures à un projet (chaque bénévole peut avoir plusieurs projets). Les superviseurs bénévoles sont avisés lorsqu'un nombre d'heures de bénévolat se rapproche d'un certain montant pour leur donner une récompense.
Par exemple: un bénévole qui s'est porté volontaire pendant 10 heures reçoit un t-shirt gratuit. Le problème que j'ai est de savoir comment concevoir la base de données de manière à ce qu'un seul profil de récompense puisse être lié à plusieurs projets et avoir un seul profil de récompense «multi-niveaux». Une grande chose à ce sujet est que les structures de récompenses peuvent changer afin qu'ils ne peuvent pas être simplement codés en dur. Exemple de ce que j'entends par profil de récompense «multi-niveaux»: Un bénévole qui a fait du bénévolat pendant 10 heures reçoit un t-shirt gratuit. Un bénévole qui s'est porté volontaire pendant 40 heures reçoit un chèque gratuit de 50 $.
Les solutions que j'ai trouvées sont: Pour avoir une table de profil de récompense qui relie une rangée à chaque profil de récompense.
rewardprofile:
rID(primary key) - int
description - varchar/char(100)
details - varchar/file (XML)
En plus, tout en sur le sujet, peuvent entrées de champ DB être des fichiers?
OU
d'avoir une table de récompenses qui concerne une quantité prédéterminée et récompense où chaque ligne est la suivante et une seconde récompenses tableau profil qui les lie les récompenses entrées ensemble:
rewards:
rID(primary key) - int
rpID (references rewardsProfile) - int
numberOfHrs - int
rewardDesc - varchar/char(100)
rewardsprofile:
rpID(primary key) - int
description
si cela pourrait ressembler à:
rewardsprofile:
rpid | desc
rp01 | no reward
rp02 | t-shirt only
rp03 | t-shirt and check
rewards
rid | rpID | hours | desc
r01 | rp02 | 10 | t-shirt
r02 | rp03 | 10 | t-shirt
r03 | rp03 | 40 | check
Je suis sûr que cette question n'a rien de nouveau, mais mon fu google est faible et je ne sais pas comment pce Assure cela de manière significative. Je pense qu'il doit y avoir une solution plus formalisée que ma méthode (hack and slash). Si quelqu'un peut me dire ce que l'on appelle ce problème ou des solutions à ce problème, ce serait bien. Merci pour tout votre temps!
Cheers, -Jeremiah Tantongco
Avez-vous jeté un oeil à databaseanswers.com pour un schéma existant possible ?? –