Qual è l'approccio migliore per confrontare i dati in un database? [chiuso]

-3

Ho intenzione di porre alcune domande casuali da centinaia di loro ai miei utenti e le risposte possono essere solo "vere" o "false". Quindi registrerò queste risposte nel mio database e infine confronterò quelle risposte e trovo che le relazioni tra loro come "Utente A" e "Utente B" hanno 20 risposte in comune e informano quegli utenti.

I nuovi utenti possono aderire al servizio o gli utenti effettivi possono rispondere a più domande in tempo, quindi devo fare spesso il confronto.

Qual è la migliore logica aziendale o approccio per procedere? Come posso farlo in modo scalabile? Come posso consultare le soluzioni o le esercitazioni google per questa domanda (qualsiasi parola chiave)?

Ecco come appare il mio database per questo processo:

Ho tre tabelle nel mio database:

  • Uno di questi si chiama "utenti" e conserva le informazioni della registrazione utenti come username, password, ecc.

  • Il secondo è chiamato "domande" e mantiene le domande da porre agli utenti.
    (Due colonne: domanda ID e testo della domanda)

  • L'ultimo chiamato "risposte" e mantiene le risposte fornite dagli utenti.
    (Due colonne; domanda ID e risposta (VERO / FALSO))

posta Sercan 12.12.2015 - 00:48
fonte

1 risposta

2

La seguente query:

SELECT a.user_id AS a_user_id, 
       b.user_id AS b.user_id,
       a.question_id, 
       a.answer
FROM 
    answers AS a INNER JOIN answers AS b
        ON a.question_id = b.question_id AND a.answer = b.answer;
WHERE 
    a.user_id <> b.user_id;

ti darà un lungo, lungo tavolo con tutte le risposte identiche di tutti gli utenti. Puoi quindi elaborare questa tabella per trovare le risposte condivise dagli utenti, oppure puoi utilizzare COUNT() e GROUP BY per ottenere solo i conteggi.

Prova prima questo; guadagna dei soldi mentre i tuoi utenti sono migliaia e non milioni; se questo non dovesse funzionare abbastanza nel momento in cui i tuoi utenti saranno in numero di milioni, sarai già un milionario, quindi potrai permetterti una squadra di dottorati di lavorare sul problema e fornire una soluzione più ottimale, soluzione più scalabile.

    
risposta data 12.12.2015 - 01:24
fonte

Leggi altre domande sui tag