2010-06-04 3 views
1

Je dois ajouter une table pour stocker les paramètres utilisateur. Pour la première fois, les utilisateurs auront environ 10 réglages différents, mais je suis sûr qu'il y en aura plus.Structure de la table de base de données pour les paramètres utilisateur

Quelle structure évolutive de la table de base de données pour stocker les paramètres utilisateur suggéreriez-vous?

Toute aide serait grandement appréciée.

Merci!

Répondre

4

Colonnes de la table de paramètres -: setting_id | setting_code | nom_paramètre | setting_description

Colonnes de la table utilisateur -: user_id | nom_utilisateur | mot de passe utilisateur | etcetera

Colonnes de table de paramètres utilisateur -: user_setting_id | user_id_fk | setting_code_fk | SETTING_VALUE

la structure

comme ceci:

Utilisateurs -> Paramètres utilisateur < ---- Réglages

Hope this helps.

+2

Cela fonctionne si toutes les valeurs de paramètre ont le même type de données. Si elles sont de types différents, il est logique de créer une colonne pour chacune d'entre elles. De plus, si vous avez une colonne pour chaque paramètre, vous n'avez besoin que d'une table au lieu de trois. – sqlvogel

+2

Est-ce que cela tombe dans le modèle de valeur clé souvent désapprouvé? – tstyle

+0

@sqlvogel Je pense qu'une table Utilisateurs devient trop large si vous incluez chaque paramètre en tant que colonne. 2 tables pourraient être la meilleure approche je pense. – user3308043

2

Dépend des paramètres.
Si ce ne sont que des drapeaux, vous pouvez utiliser un masque de bits.

S'il s'agit de chaînes, créez des champs séparés.
Ne le rendez pas "scalable". Les bases de données doivent être évolutives en longueur (et elles le sont), pas en largeur.
Planifiez simplement la structure de votre base de données avant de commencer un code.

Si le plan est mauvais - OK, vous pouvez ajouter quelques champs plus tard. Mais ne le faites pas régulièrement. C'est un signe de mauvaise conception de la base de données.

Questions connexes