Question

Je construis un site communautaire où l'utilisateur sera connecté par e-mail et les membres seront en mesure de changer leur nom / surnom.

Pensez-vous que je devrais garder le nom de membre / surnom dans ma table de membres avec d'autres propriétés de membre ou créer une autre table, écrire le nom de membre / surnom sur la table et l'ID de membre associé.

Je suis en faveur de la deuxième option parce que, je pense que ce serait plus rapide aux membres de traction le nom de celui-ci.

Est-il juste / mieux?

Mise à jour: la raison est d'autre table est que je dois tirer le nom d'utilisateur pour différentes sections. Pour les forums par exemple. Ne serait-il plus rapide d'interroger une petite table pour chaque nom d'utilisateur pour chaque poste dans un de sujet?

Était-ce utile?

La solution

Pourquoi pensez-vous que la deuxième option serait plus rapide?

Si le surnom est nécessaire un à un rapport à un membre ID l'endroit approprié pour les stocker est dans la même table. Ceci est encore une recherche unique document indexé de sorte qu'il devrait être plus ou moins aussi vite que l'autre option.

En fait, cette solution serait probablement plus rapide, puisque vous pouvez obtenir le surnom dans le même SELECT que vous obtenez les autres informations.

Mise à jour pour répondre à la mise à jour à la question:

La seconde table est pas plus petite en termes de nombre de lignes. Les principaux facteurs dans une recherche SQL sont 1) le nombre d'enregistrements de la table et 2) le nombre de correspondances possibles de la partie indexée de la recherche.

Dans ce cas, le nombre d'enregistrements dans votre petite table serait exactement la même que la plus grande table. Et le nombre d'enregistrements correspondants possibles retournés par l'indice sera toujours 1 car l'ID de membre est unique.

Le nombre de colonnes dans la table que vous êtes à la recherche est généralement sans rapport avec le temps nécessaire pour retourner les données (le nombre de colonne liste fait dans l'instruction SELECT peut avoir un effet, mais c'est la même quel que soit le tableau vous êtes à la recherche).

bases de données SQL sont très, très bon pour trouver des données. Structurez votre données correctement et laissez vous inquiétez pas de base de données sur l'obtenir revenir. L'optimisation prématurée est, comme on dit, la racine de tout le mal.

Autres conseils

Je garderais une table et définir une contrainte unique sur Email dans ce tableau.

Je ne vois pas un seul avantage à ajouter une autre table.

Aller à la première option: garder le nom / surnom dans la table des membres. Il n'y a pas besoin d'introduire une table supplémentaire et les frais généraux d'une jointure qui va avec, dans ce cas.

Oui, ID de membre associant aux autres propriétés est la bonne façon de procéder.

Vous pouvez simplement créer un index sur le nom pour accélérer vos requêtes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top