C'est ce que je fais aussi, j'utilise énormément les vues avec PostgreSQL, et ça n'a jamais posé de soucis.
La clé primaire définie dans une classe modèle ne doit pas forcément correspondre à un champ déclaré comme tel dans la base de données (PRIMARY KEY en SQL), cela peut être n'importe quel champ (ou combinaison de champs) qui permette d'identifier un tuple de manière unique. Il suffit donc d'inclure dans la vue un champ qui peut remplir cette fonction, ce qui ne pose généralement aucune difficulté.
Sur le reste je te rejoins dream_moon, je trouve plus pratique de gérer directement mes jointures dans des vues plutôt que dans les classes modèles, mais les deux pratiques ont chacune leurs avantages et leurs inconvénients.
Partager