Ich muss einen Benutzer in eine Gruppe basierend auf Permutationen von 11 Fremdschlüsseln (1-11) sortieren.Sortierung basierend auf Permutationen einer bestimmten Größe
Ich habe einen big_table:
FK | User_ID FK | User_ID
1 | a 4 | c
5 | a 1 | c
3 | b 5 | c
9 | b 11 | c
7 | b 2 | c
- Gruppe 1 (G1) wird eine beliebige Permutation der Größe 2 (Benutzer A in diesem Beispiel)
- G2 wird jede Permutation der Größe 3 (Benutzer umfassen b)
- G3 wird eine beliebige Permutation der Größe 4 bis zur Größe 11 (user c)
die gültigen Permutationen wird in Separa gespeichert werden te Tabellen, eine Tabelle für alle Permutationen der Größe 2, eine andere für Permutationen der Größe 3 usw.
Wie kann ich überprüfen, ob ein Benutzer die Anforderungen erfüllt, um in eine Gruppe zu passen?
(Effizienz ist vorzuziehen, aber eine funktionierende Lösung ist das Ziel). Entschuldigung, ich habe keinen Code, aber ich bin neu genug für SQL, dass ich nicht weiß, wo ich mit diesem Problem anfangen soll.
EDIT: Es gibt andere Gruppen und mehr Fremdschlüssel, G1-G3 sind nur für FK 1-11 anwendbar.
Das Problem, das ich die meisten Schwierigkeiten habe, meinen Kopf herumzuwickeln, ist, wie man mehrere FKs mit einer einzelnen Permutation vergleicht. Zum Beispiel: Wie kann ich
1 | a and 3 | a
auf eine Liste von gültigen Permutationen algorithmisch vergleichen?
Nach welchen Ergebnissen suchen Sie? –
@Ridiculon Sie wollen wirklich versuchen, zumindest einige Versuche zu zeigen, dies selbst zu lösen. Siehe [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask) und [mcve] – Tibrogargan
Dies ist Teil eines viel größeren Problems, das ich festhalte, das ich entkleidet habe so viel wie möglich runter. Das ganze Problem betrifft mehr (und kompliziertere) Gruppen, aber ich weiß, wenn ich eine Antwort auf diesen Aspekt bekommen kann, kann ich es auf den Rest des Problems anwenden. Teil des Problems ist, dass ich nicht sehr viel über SQL jenseits von ddl-Aussagen weiß, ich suche jemanden, der mehr Erfahrung hat, um mich in die richtige Richtung zu zeigen. – Ridiculon