Ich möchte Listen mit einer unterschiedlichen Anzahl von Einträgen verwalten. Zur Zeit verwende ich die folgende Tabellenstruktur.Suchen nach Duplikaten in SQLitentabelle mit mehreren Zeilen
CREATE TABLE lists (
list_id INTEGER,
sort_id INTEGER,
content_id INTEGER,
PRIMARY KEY (list_id,sort_id)
)
So kann ich eine individuelle Anrufliste verwenden:
SELECT content_id WHERE list_id=<<X>> ORDER BY sort_id
Im Prinzip eine neue Liste hinzuzufügen ist kein Problem, aber wie kann ich überprüfen, nach Duplikaten einer vollständigen Liste, bevor Sie einen neuen Satz einfügen einer Liste? Ich gebe ein Beispiel:
Es gibt die folgende Liste bereits eingefügt:
list_id | sort_id | content_id
--------+---------+-----------
3 | 1 | 7
3 | 2 | 4
3 | 3 | 9
Eine neue Liste mit dem Inhalt 7,4,9 wäre ein Duplikat sein und nicht eingesetzt werden muß. Aber der Inhalt 4,7,9 oder 7,4 oder 7,4,9,5 muss aufgrund meiner Definition eines anderen Listeninhalts eingefügt werden.
Ich dachte an eine neue Tabelle hinzu, dass enthält den verketteten Inhalt einer Liste, so etwas wie:
CREATE TABLE lists_concat (list_id PRIMARY KEY, content_concat UNIQUE)
Also für mein Beispiel wäre es den Eintrag
list_id | content_concat
--------+---------------
3 | 7,4,9
Dies würde funktionieren , aber es scheint sehr kompliziert zu sein. Gibt es einen leichteren Weg? Ich bin auch offen, um eine andere Tabellenstruktur für meine Listen zu verwenden. Erzähl mir bitte über deine Ideen.
Vielen Dank
**:
Sie nach Duplikaten wie diese suchen! ! ! Die rechte Klammer der vorletzten Zeile ist falsch! ! ! ** Aber danke für die Lösung. Ich kann das benutzen! –