Em relação às 2 soluções, não sei qual delas a mais eficiente/rápida.
Mas a 2ª parece-me problemática, quando tentares por uma aplicação/site a usa-la.
Problemas de vejo na segunda solução:
- Deixas de ter vários inserts por dia, passas a ter vários updates...
- Tens que ter lógica implementada, para ver se é o 1º acesso do dia, para saber se fazes um update ou insert..
- Do que me parece, não podes fazer querys a BD, pelo menos de forma natural
-Saberes a media de ganhos de o utilizador num dia.
-Saberes o utilizador com mais ganhos... etc
-Não podes fazer nenhum select que use os ganhos, para fazer ordenação, condições etc...
- Ficas com menos linhas, para teres selects mais rápidos, mas isso obriga a que tenhas que implementar lógica e processamento sobre os resultados do select que fizeres no site, em php ou o que for...
- Caso queiras saber mais informação sobre ganhos (aprovado ou não, pagou ou não, etc...) como fazes ? vais concatenar isso com a string... tens que andar sempre a analisar a string com a informação toda? mesmo que só queiras um dos vários dados quardados na string...