2012-03-30 2 views
0

J'ai terminé un projet CMS php/mysql, et puisque le grails est le sujet principal de l'une de mes classes, je me suis dit pourquoi ne pas en jouer et adapter le CMS à une application Grails.Adaptation du design aux Grails

Je suis actuellement modélisation du domaine, qui se composent de 4 classes: User, Labs, Files et Support. Le User est le domaine principal de l'application et a beaucoup de Labs. Chaque objet Labs a beaucoup Files et un seul Support.

Le but de Support est de faire référence à tous les Users qui sont attachés à un laboratoire particulier. Chaque laboratoire a un chef de file, un personnel de 0 à plusieurs et un conseiller de la faculté. Mon problème est comment puis-je modéliser cela dans Grails? Je déclare actuellement un User lead et User faculty dans la classe, mais je ne suis pas sûr de savoir comment gérer 0 à plusieurs membres du personnel de soutien.

Si je fais un static hasMany [user:User], cela signifie que tout User attaché au Support sera ajouté sans rôle distinctif.

Des suggestions?

Répondre

1

Je pense que c'est juste appeler le personnel de relation.

class Support{ 
    static hasMany = [ staff : User ] 
    User lead 
    User facultyAdvisor 
} 

Dans votre code puis, vous appellerez:

def support = new Support() 
support.addToStaff(user1) 

ce qui est logique pour moi.

Votre hasMany peut être appelé n'importe quoi. Vous pouvez même avoir une relation comme

class Support{ 
    static hasMany = [ staff:User, leads: User, facultyAdvisors: User ] 
} 

et cela vous permettra de distinguer les utilisateurs par rôle.