2016-12-19 3 views
0

Problem Es kann keine Tabelle mit einer Indexspalte erstellt werden, die auf mehrere Zeilen in einer Tabelle verweist. Bildbeispiel von dem, was ich versuche zu erstellen.SQLite-Tabellenstruktur zum Erstellen einer 1: Viele Indexbeziehung

Übersicht Stellen Sie sich eine (SQLite) -Tabelle vor, die die Dividendenzahlungen enthält. Die Indexspalte ist auf die Tickersymbole eingestellt. Jedes Tickersymbol bezieht sich jedoch auf mehrere Datensätze, die durch einen Zeitstempel organisiert sind. Die Dokumentation zu SQLite und etwa 15 anderen Tutorials scheint sich auf die Indexierung zu konzentrieren, bei der es immer eine 1: 1-Beziehung zwischen einem Index und einem Datensatz gibt. Ich möchte einen Index mit einer 1: Viele-Beziehung erstellen.

Die Suche würde die entsprechende Aktie nach Symbol und dann (wahrscheinlich) einen sekundären Index für die Daten in der ersten Spalte finden. Aber ich kann keine Beispiele finden, wo andere versucht haben, diese Struktur aufzubauen. Bringt mich dazu zu denken, dass ich vielleicht nicht den richtigen Ansatz habe, oder das ist nur ein spezieller Fall.

Example Table Structure

Antwort

0

Ich glaube nicht, Ihr Problem tatsächlich ein Problem ist. Ein Index für eine Spalte muss nicht unbedingt eindeutige Werte enthalten. Es ist durchaus sinnvoll, dass sich Werte in einer indizierten Spalte wiederholen. Natürlich gibt es abnehmende Renditen. Z.B. Wenn Sie eine Million Zeilen und nur fünf verschiedene Werte in einer Spalte haben, wird ein Index für diese Spalte nicht wirklich viel für Sie tun.

Eine gute Faustregel ist, mit einem Index für die Spalte (n) zu beginnen, die Sie in Ihrer WHERE-Klausel verwenden. Führen Sie anschließend die Abfragen aus, und prüfen Sie, ob die Leistung zufriedenstellend ist.

+0

Danke für Ihre Tipps, Michael. Ich verstehe das Erstellen eines Indexes. Aber ich verstehe nicht, wie man diesen Index erstellt, um auf mehrere Zeilen zu verweisen. Könnten Sie bitte ein SQLite-Beispiel oder eine Referenz zu einem geben? Danke! – Adestin

+0

Sie finden keine Dokumentation darüber, weil es nicht etwas ist, was Sie tun müssen. Verwenden Sie einfach die Standardsyntax: create index index_name für Tabelle (Spalte (n)). Es ist nichts Besonderes, auf mehrere Zeilen zu verweisen. Es wird einfach funktionieren! –

+0

oh. Oh. Daher müssen die Primärschlüsselfelder nicht eindeutig sein ... so dass jedes Feld in dieser Spalte Wiederholungsschlüssel hat ... das gibt mir die Suchergebnisse, die ich brauche. Danke, Michael. Genau das musste ich hören. – Adestin

Verwandte Themen