J'ai la structure DB comme suit:modèle ORM et DAO dans mon cas particulier
Table ETUDIANT (par exemple, id, nom, etc.) (disons
STUDENT_PROPERTIES de table, name_of_the_property: char, value_of_the_property: char , student_id: FK)
tableau COURS (id, nom, statusofcourse_id)
tableau STATUSOFSOMETHING (id, name_of_status: char ('actif', 'inactif', 'suspendu', etc.))
Table STUDENT_COURSE (student_id, course_id, statusofsomething_id)
Essayons de ramasser des objets de domaine dans ma base de données:
étudiants et des cours sont des entités principales. Étudiant a une liste de cours qu'il fréquente, il a aussi une liste de propriétés, c'est tout pour cet étudiant.
Ensuite, l'intitulé du cours. Il peut contenir une liste d'étudiants qui y assistent.
Mais en fait, toute la structure ressemble à ceci: le point de départ est l'élève, avec ses PK nous pouvons regarder une liste de ses propriétés, alors nous regardons dans le STUDENT_COURSE et extraire les deux FK de l'entité de cours et aussi le statut de la combinaison, il ressemblerait à « étudiant nommé bla bla, avec toutes ses propriétés, assiste les mathématiques et le statut de celui-ci est « ACTIVE ».
maintenant, citation
1) Chaque L'instance de DAO est responsable d'un objet ou d'une entité de domaine principal Si un objet de domaine a un cycle de vie indépendant, il devrait avoir son propre DAO.
2) Le DAO est responsable des créations, des lectures (par clé primaire), des mises à jour et des suppressions - c'est-à-dire CRUD - sur l'objet de domaine.
Maintenant, la première question est Quelles sont les entités dans mon cas? Student, Course, Student_Course, Status = tous sauf pour StudentProperties? Dois-je créer un DAO distinct pour chaque objet?
@ James Goodwin Probablement, mais est-il correct qu'il n'y a pas seulement student_id et course_id, mais aussi le troisième champ, status_id que définit une ligne dans la table? En fait, ce champ de statut n'appartient pas au cours, il existe complètement indépendamment. Seule sa valeur dans STUDENT_COURSE a du sens. – EugeneP