par
Ryle » 05 mai 2011, 23:46
Je dirais que c'est principalement une question de cardinalité...
Si ta relation est de type 1::1 voire 1::2 (c'est à dire qu'à un utilisateur ne peut être rattachée qu'une ou deux options), tu peux ajouter un (ou deux) champ dans ta table table utilisateur.
Si tu as une relation de type 1::N ou N::N (c'est à dire qu'un ou N utilisateurs peuvent être rattachés à N options), il faut utiliser une table supplémentaire dans laquelle tu pourras stocker l'id de l'utilisateur et l'id de l'option qui lui est associé. En recherchant un id user sur cette table, tu obtiendras facilement les id des toutes les options auxquelles il est rattaché, ou au contraire pour un id option donné, tu peux aisément savoir quels sont les utilisateurs qui y sont rattachés.
Ce qu'il faut absolument éviter c'est de gérer plusieurs valeurs dans un seul champ

Je dirais que c'est principalement une question de cardinalité...
Si ta relation est de type 1::1 voire 1::2 (c'est à dire qu'à un utilisateur ne peut être rattachée qu'une ou deux options), tu peux ajouter un (ou deux) champ dans ta table table utilisateur.
Si tu as une relation de type 1::N ou N::N (c'est à dire qu'un ou N utilisateurs peuvent être rattachés à N options), il faut utiliser une table supplémentaire dans laquelle tu pourras stocker l'id de l'utilisateur et l'id de l'option qui lui est associé. En recherchant un id user sur cette table, tu obtiendras facilement les id des toutes les options auxquelles il est rattaché, ou au contraire pour un id option donné, tu peux aisément savoir quels sont les utilisateurs qui y sont rattachés.
Ce qu'il faut absolument éviter c'est de gérer plusieurs valeurs dans un seul champ :)