J'ai un modèle qui représente les préférences d'affichage de l'utilisateur. À peu près toutes ces préférences sont des valeurs booléennes. Au lieu d'avoir 50 colonnes booléennes, y a-t-il une meilleure façon de faire? À l'avenir, lorsque je souhaite ajouter un nouvel élément, je ne souhaite pas ajouter de nouvelle colonne dans ma base de données.Quelle est la meilleure façon de représenter plusieurs booléens dans un modèle django?
Répondre
"Dans le futur, lorsque je souhaite ajouter un nouvel élément, je ne souhaite pas ajouter une nouvelle colonne dans ma base de données."
Dans ce cas, vous devez ajouter une ligne.
Vous avez une table avec le nom de domaine possible. 50 rangs.
Vous avez un tableau des paramètres actuels. Utilisateur, nom du paramètre, valeur de réglage.
Si vous avez autant de booléens et que vous prévoyez d'en ajouter d'autres, vous ne devriez pas utiliser de colonnes, mais des entrées.
Ensuite, lorsque vous avez besoin de chercher "User veut emails", il suffit de chercher UserPrefs.objects.get (User = user, Preference = Preferences.objects.get (name = "veut email")).
user_table:
- utilisateur
- nom d'utilisateur
- etc
Preferences_Table:
- Nom
- Description
- etc
UserPreferences_Table:
- utilisateur (FK_User)
- préférence (FK_Preferences)
- Réglage (Boolean)
En fonction de votre configuration, vous pouvez être capable d'omettre le champ Setting dans la table UserPreferences et simplement utiliser l'existence d'un essayez pour cet utilisateur/préférence en tant que vrai et le manque d'un en tant que faux.
Vous pouvez également utiliser un bitmap. Vous n'avez besoin que d'un seul champ char dans votre base de données. Quelque part dans votre application, vous stockez une liste de préférences, pref1, pref2, pref3 ... et dans l'image bitmap vous stockez une séquence de 1 et 0 qui correspondent aux préférences. Par exemple, 101 signifie pref1 = yes, pref2 = no, et pref3 = yes et 011 signifie pref1 = no, pref2 = yes et pref3 = yes.
Vous pouvez rendre cela réutilisable en créant un nouveau type de champ de modèle pour les bitmaps.
- 1. Quelle est la meilleure façon de représenter les feuilles de temps dans la base de données
- 2. Quelle est la meilleure façon de gérer un objet modèle django?
- 3. Quelle est la meilleure façon de représenter une planification dans une base de données, via Python/Django?
- 4. Quelle est la meilleure façon de représenter arbitrairement de grands nombres dans c?
- 5. Quelle est la meilleure façon de structurer un projet?
- 6. Dans javaDoc, quelle est la meilleure façon de représenter les attributs en XML?
- 7. Quelle est la meilleure façon de remplacer un modèle défini dans un plugin?
- 8. Quelle est la meilleure façon de mapper les urls principaux dans un projet django?
- 9. Quelle est la meilleure façon d'écrire dans un fichier Ruby?
- 10. Quelle est la meilleure façon de montrer plusieurs cases à cocher pour plusieurs enregistrements dans ASP.NET
- 11. Quelle est la meilleure façon de stocker les valeurs de configuration pour plusieurs dizaines de colonnes?
- 12. Quelle est la meilleure façon de servir des pages Web statiques à partir d'une application Django?
- 13. Quelle est la meilleure façon de déboguer un Oracle SP?
- 14. quelle est la meilleure façon de marquer un texte?
- 15. Quelle est la meilleure façon de déboguer un écrasement explorer.exe?
- 16. Quelle est la meilleure façon de chiffrer un clob?
- 17. Quelle est la meilleure façon de rafraîchir un indice Nutch?
- 18. Quelle est la meilleure façon de localiser un IEnumerable?
- 19. Quelle est la meilleure façon d'effacer un tableau de chaînes?
- 20. Quelle est la meilleure façon de vider un répertoire?
- 21. Quelle est la meilleure méthodologie de modélisation pour représenter un système logiciel?
- 22. meilleure façon de représenter cette table de recherche dans C#
- 23. Quelle est la meilleure façon de dupliquer fork() dans Windows?
- 24. Quelle est la meilleure façon de formater C# dans WordPress?
- 25. Quelle est la meilleure façon de gérer plusieurs connexions de base de données dans C#
- 26. meilleure façon de gérer JSON dans django
- 27. Quelle est la meilleure façon de dire à un framework quelle base de données utiliser?
- 28. Quelle est la meilleure façon de glisser la section de html en utilisant javascript?
- 29. Quelle est la meilleure façon d'implémenter un délai AJAX?
- 30. Quelle est la meilleure façon d'enregistrer un RichTextFile en C#?
Par "meilleur", vous semblez signifier "le plus extensible". –