Paramétrage des onglets N,N en type 1,N

Version

5.2 latest

Description

Actuellement pour une relation N,N, l’objet affiché dans l’onglet est l’objet de liaison entre les deux objets métiers.
Pour les cas où cet objet ne sert qu’à la liaison (il n’a aucun attribut autre que les clés étrangères) il serait utile de pouvoir afficher l’objet qu’il sert à lier.

Le besoin est de pouvoir s’affranchir un paramétrage supplémentaire de lien virtuel pour passer au travers de la N,N :

En base on a : table A ← table NN → table B
Aujourd’hui sur la UI on a par défaut : A ← panel des NN avec des hyperliens vers B

Il faudrait avoir directement : Objet A ← panel des objets B via 1 lien virtuel + création/suppression du lien NN en cascade de B

Ce serait effectivement une bonne idée dans certaines modélisations, il faudrait pouvoir le spécifier dans le modèle (Link vers A sous forme d’une notion de “composition” ou ‘pass-thru’) car ça ne pourra pas être le fonctionnement par défaut de toutes les NN élémentaires :

  • pour une raison de compatibilité ascendante du méta-modèle
  • de pouvoir créer B sans forcement créer de NN, la NN est avant tout une notion d’association/agrégation où A et B peuvent exister séparément.

Dans un cas de composition, on modélise généralement une relation 0,N en delete cascade directement.

On est d’accord que dans votre besoin d’UX :

  • on ne peut plus associer A avec un B préexistant ?
  • dissocier A et B depuis la UI ?
    sinon il faudra aussi ajouter un bouton associer/dissocier quelque part

Bonjour, oui c’est tout à fait ce à quoi je pensais.

  • ce paramétrage doit être en effet optionnel car dans de nombreux cas on a des champs à remplir sur la table NN
  • il serait quand même utile d’avoir un bouton Associate (j’en ai fait un “maison” dans mon paramétrage)
  • j’ai aussi remplacé le Delete par un Delete “maison” qui fait en réalité un dissociate
  • de façon générale, il me semble que le bouton Delete remplit aujourd’hui deux fonctions différentes pour l’utilisateur : soit Delete soit Dissociate. Il serait peut-être moins confusing de le remplacer par Dissociate dans les cas appropriés ?