La mia opinione è che NON si deve mai hard-codare il nome di una tabella.
A parte questa questione, ho paura a seguire questa strada, perchè non so dove conduce. Se limita o se in realtà dà delle comodità che altrimenti non avrei.
Premetto che non sono molto pratico di yii, ma ho avuto lo stesso problema con doctrine2.
L’approccio di non preoccuparsi della tabella intermedia credo sia quello migliore: dovrebbe essere il sistema a doversi preoccupare di creare e popolare la tabella intermedia, e anche l’estrazione delle collezioni di dati dovrebbe essere trasparente all’utente.
Solo nel caso in cui si ha una relazione many2many con attributo mi sono trovato costretto a creare la tabella intermedia ed a trasformare la relazione in 2 relazioni one2many e many2one ma credo siano casi un pò particolari e cms non saprei gestiti in maniera differente
Preciso che le tabelle a regime saranno di poche decine di righe ciascuna, quindi non avrò problemi di performance… spero !
Quello che dovrò fare è di permettere all’utente dalla form dei listini di spostare aggiungere e rimuovere continuamente degli articoli … non chiedetemi perchè, sto cliente ha necessità strane … ma verrà comunque fatto solo all’inizio dopo l’installazione, per cui questa volta voglio stare comodo io come programmatore, poi penserò a fare l’interfaccia usabile all’utente.
Quindi, in breve, con la tabella intermedia (a cui non posso rinunciare per motivi di design che non mi competono), conviene usare la strada delle due relazioni N-1 e 1-N per raggiungere a da b e viceversa?
In fase di salvataggio abbinamento, dovrò creare a mano un nuovo record nella tabella intermedia…
uhm… mi sa che dovrò pensare bene alla GUI sta volta…
grazie alla tua domanda ho soddisfatto anche un mio dubbio io personalmente creo il model intermedio per un riscontro nel db delle associazioni presenti… viceversa, se ho capito bene, dovrei fare queste verifiche via codice… o sbaglio?