Bonjour,
Voici un exemple simpliflié de mon cas.
Imaginons une table ACCESS qui contient ces quatres colonnes "id" (number), "create", "update", delete" (boolean). Je connais donc à l'avance le nombre de rows potentiels réellement disctincts, sans prendre en compte l'id. (8 dans ce cas)
Dans une autre table, en liant l'id d'un user et un id de ACCESS, je peux déterminer facilement les accès pour un user.
Je me demande quel schéma utiliser et comment utiliser ce schéma pour gérer cela.
Proposition 1 , je crée un nouveau row dans ACCES à chaque fois que je crée les accès pour un user.
Inconvénient: je vais au final me retrouver avec énormément de rows identiques dans ACCESS (avec uniquement id qui diffère).
Proposition 2 , j'imagine un code interprété par l'application pour remplacer ACCESS.
Exemple: "110" voudrait dire "create TRUE, update TRUE, delete FALSE".
Dans ce cas, plus besoin de la table ACCESS, j'utiliserai simplement un champ avec le code désiré. Inconvénient: ce n'est pas très lisible pour un humain...
Proposition 3 , je crée par défaut toutes les possibilités envisageables dans ACCESS, et je lie au user l'id de ACCESS correspondant à la combinaison désirée.
Inconvénient: il faut remplir au préalable la table ACCESS avec toutes les possibilités possibles (problème minime), puis réussir à lier le user avec la bonne id de ACCESS. Et pour avoir un id facilement utilisable, ça revient rapidement à la proposition 2... je ne suis donc pas sûr que ça apporterait grand chose.
Selon vous, quelle serait la meilleure manière d'aborder ce genre de cas? Existe-t-il d'autres solutions plus élégantes?
Merci beaucoup.
Partager