Je cherche la meilleure approche pour ce problème de conception de base de données. Je pense que j'ai trouvé quelque chose qui fonctionne bien, mais je ne sais pas si c'est la meilleure approche. J'utilise CakePHP si cela signifie quelque chose pour vous.Comment structurer les types de personnes dans une base de données
Ma base de données est faite pour des cours de musique. J'ai tous que ce soit les parents, les élèves, les enseignants, les administrateurs ou toute autre personne dans une table des gens appelé décrites ci-dessous:
People
id first_name last_name email created modified
Maintenant, la question que je commence à avoir est de savoir comment identifier une personne en tant que professeur, parent élève etc. Il est logique pour moi d'avoir un tableau séparé pour chaque groupe. Par exemple
Teachers
id person_id
Students
id person_id
Payers
id person_id
De cette façon théoriquement un enseignant peut aussi être un étudiant. Un «payeur», la personne qui paie pour les leçons, pourrait aussi être un étudiant et la liste continue.
Maintenant, j'ai aussi besoin de connaître la relation entre une personne et un étudiant. Je voudrais donc avoir une table séparée comme ceci:
Relationships:
id person_id student_id type
« type » pourrait être mère, père, tuteur légal, preneur de soin, tante, grand-mère, etc. Cette conception me semble logique, mais en même temps semble être un peu de travail et de tableaux pour décrire quelque chose qui semble être plus facile à décrire. Y a-t-il une meilleure manière de faire cela? Je ne cesse de deviner moi-même et pense avoir une toute nouvelle table juste pour étiqueter une personne en tant qu'étudiant ou enseignant ou ce qui ne semble pas exagéré en quelque sorte.
Avez-vous besoin de différents types de relations pour les différents types de personnes impliquées dans les différents types de personnes, ou seulement un type générique suffit? Par exemple, y a-t-il quelque chose de spécial au sujet de la relation entre l'enseignant et l'élève par rapport à la relation entre le dire, le parent et l'élève? –
J'ai besoin de relations différentes. C'est juste pour savoir qui sont les gens. J'ai besoin de savoir quand je communique avec quelqu'un qu'ils sont la maman ou la grand-mère ou seulement la personne qui va payer pour les leçons. Je n'aurais pas besoin d'une table supplémentaire pour expliquer les relations pour les parents ou les grands-parents, etc. J'ai seulement besoin de savoir qui sont le payeur et l'étudiant pour les calculs réels.Toutes les autres relations seraient définies dans le tableau "relations" qui n'aurait pas besoin de calculs et serait juste pour contacter les gens. –