44 | | The main concept I'd suggest for informing a better design would be that both the forward and reverse relations should be symmetrical in usage. In other words, for anything you can do on the forward relationship (checking if it exists, assigning it, etc), the same is possible on the reverse. This would be more implicit with the idea of a "One to One" relationship, where structurally neither model is a parent but instead both models share a peer relationship, and being peers implies having equal capabilities. |
| 44 | The main concept I'd suggest for informing a better design would be that both the forward and reverse relations should be symmetrical in usage. In other words, for anything you can do on the forward relationship (checking if it exists, assigning it, etc), the same is possible on the reverse. This would be more implicitly sound with the idea of a "One to One" relationship, where structurally neither model is a parent but instead both models share a peer relationship, and being peers implies having equal capabilities. |