Je modélise une application Web d'apprentissage avec deux rôles distincts, Teachers
et Students
. Il y a beaucoup de comportement commun entre les deux et il est logique de les résumer à une classe de base AppUser
. Il permet également d'utiliser l'héritage à table unique pour les deux modèles, avec une seule table app_users
qui stocke les deux types.Rails: héritage à table unique avec relations d'auto-jointure plusieurs-à-plusieurs entre enregistrements
Maintenant un Teacher
peut avoir beaucoup Students
, et un Student
pourraient être inscrits à des cours par de nombreux Teachers
. Donc, c'est une bonne relation plusieurs-à-plusieurs. Comment puis-je modéliser une relation plusieurs-à-plusieurs entre des enregistrements dans une seule table.
Je pense que l'une option est d'utiliser une table de jointure sur AppUser
- quelque chose comme app_users_app_users
, avec un teacher_id
et une colonne student_id
. Quelle est la syntaxe pour définir cela?
Une alternative consiste à utiliser un modèle, par exemple AppUserRelationship
, puis à définir les relations has_many through
. Quelle est la façon de faire cela?