Bonjour à tous !

Je voudrais modéliser le système d'information d'un site de petites annonces et je rencontre un problème de conception alors je me suis dis qu'il y avait peut-être un design pattern qui pouvait m'aider à résoudre mon problème.

Je vous décris en gros l'architecture que je souhaite modéliser.
Je pars sur le principe qu'une petite annonce appartient à une catégorie, ce qui me fait déjà deux classes.

Ce que je voudrais c'est associer des critères à une catégorie (par exemple pour la catégorie "Immobilier", les critères : prix, nb_pièces, nb_chambres, etc.) afin de pouvoir les afficher à l'utilisateur lorsque qu'il souhaite ajouter une petite annonce dans cette catégorie, ce qui me fait une troisième classe.

Il faut donc que je sauvegarde aussi pour une petite annonce, une liste de critères (l'utilisateur n'est pas obligé de les remplir tous) avec leur valeur. Et c'est là que j'ai un problème car je ne sais pas comment m'y prendre pour faire une bonne modélisation car je voudrais que mes données soient liées.

Par exemple si dans mes critères j'ai un enum avec plusieurs valeurs, je voudrais que si je change mes valeurs (ajout, modification, suppression) ça ne puisse pas fausser les données des petites annonces existantes.

Je ne sais pas si j'ai été assez clair mais je peux donner plus de précisions sur ce que j'attends.

Merci pour votre aide !