Frage

Ich erstelle eine Community -Site, auf der sich die Anmeldung per E -Mail befindet und Mitglieder ihren Namen/Spitznamen ändern können.

Glauben Sie, ich sollte den Namen/den Spitznamen der Mitglieder in meiner Mitgliedertabelle mit anderen Eigenschaften des Mitglieds aufbewahren oder eine andere Tabelle erstellen, den Namen/Spitznamen auf diese Tabelle schreiben und die ID des Mitglieds der Mitglieder assoziieren.

Ich bin für die zweite Option, weil ich denke, dass es schneller wäre, den Namen der Mitglieder daraus zu ziehen.

Ist es richtig/besser?

UPDATE: Grund für eine andere Tabelle ist, dass ich den Benutzernamen für verschiedene Abschnitte ziehen muss. Zum Beispiel Foren. Wäre es nicht schneller, einen kleinen Tisch für jeden Benutzernamen für jeden Beitrag in einem From -Thema abzufragen?

War es hilfreich?

Lösung

Warum wäre die zweite Option Ihrer Meinung nach schneller?

Wenn Spitzname eine erforderliche Eins-zu-Eins-Beziehung zur Mitgliedsausweise ist, ist der geeignete Ort, um sie zu speichern, in derselben Tabelle. Dies ist immer noch eine indizierte Single-Record-Suche, sodass sie so schnell wie Ihre andere Option mehr oder weniger sein sollte.

Tatsächlich wäre diese Lösung wahrscheinlich schneller, da Sie den Spitznamen in der gleich Wählen Sie, während Sie die anderen Informationen erhalten.

Aktualisieren Sie das Update auf die Frage:

Die zweite Tabelle ist in Bezug auf die Anzahl der Zeilen nicht kleiner. Die Hauptfaktoren bei einer SQL -Suche sind 1) Anzahl der Datensätze in der Tabelle und 2) Anzahl möglicher Übereinstimmungen aus dem indizierten Teil der Suche.

In diesem Fall wäre die Anzahl der Datensätze in Ihrer kleineren Tabelle genau das gleiche wie die größere Tabelle. Und die Anzahl der möglichen übereinstimmenden Datensätze, die vom Index zurückgegeben werden, beträgt immer 1, da die Mitglieds -ID eindeutig ist.

Die Anzahl der Spalten in der von Ihnen gesuchten Tabelle ist im Allgemeinen für die Zeit, die zur Rückgabe der Daten benötigt wird Suche).

SQL -Datenbanken sind sehr, sehr gut darin, Daten zu finden. Strukturieren Sie Ihre Daten korrekt und lassen Sie die Datenbank sich Sorgen machen, dass sie sie zurückbekommen. Frühgeborene Optimierung ist, wie sie sagen, die Wurzel aller Bösen.

Andere Tipps

Ich würde es in einer Tabelle behalten und eine eindeutige Einschränkung für E -Mails in dieser Tabelle festlegen.

Ich kann keinen einzigen Vorteil beim Hinzufügen einer anderen Tabelle sehen.

Gehen Sie mit der ersten Option: Halten Sie den Namen/Spitznamen in der Mitgliedertabelle. In diesem Fall besteht kein zusätzlicher Tisch und den Overhead einer Verbindung, die damit einhergeht.

Ja, die ID des Mitglieds mit den anderen Eigenschaften zu assoziieren, ist der richtige Weg.

Sie können einfach einen Index für den Namen erstellen, um Ihre Abfragen zu beschleunigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top