Bonjour,
Problème :
Imaginons 2 radios boutons dans une interface. L'un permet d'active un champ de chaine de caractère et l'autre une liste de checkbox.
Exemple absurde : Soit l'utilisateur remplit sont "nom" soit il coche une "liste de pays" mais pas les 2.
MES choix :
En base de donnée j'ai les choix suivant :
- Un champ pour le "nom" et un champ pour faire une référence dans une table de jointure. Si l'un est remplis l'autre est forcement null.
- Un champ comprenant une chaine m'indiquant le type ("N" pour Nom ou "LP" pour Liste de Pays), et un champ reprenant soit la clés vers le Nom (stocker dans la table NOM) ou la clés vers la table de jointure.
- ...?
Remarques sur 1 : Facile à gérer niveau code mais des valeurs null dans quelques colonnes de ma table. Surement plus rapide pour faire des requêtes. Plus difficile a faire évoluer si les possibilité évoluent.
Remarques sur 2 : Plus difficile à gérer au niveau code mais plus propre en base.
Je pense que c'est un problème que vous avez tous au moins rencontrés une fois dans votre vie alors j'aimerais connaître votre avis et retour d'expérience sur vos choix. Bien entendu si vous avez une 3ième, 4ième solution je suis preneur!
Merci à vous,
Yaka
Ps: J'ai commencer par prendre la solution 2 mais en écrivant ce billet je pencherais pour refaire avec la solution 1 car facile a gérer niveau code.
Ps2: J'utilise Hibernate se qui n'a pas de rapport mais au cas ou...
Partager