Padrão de design: sistema de notificação

Estou trabalhando em um site que usará recursos de redes sociais (como o facebook, por exemplo).

Eu gostaria de implementar um sistema de notificação que mostra coisas como "X adicionou você como amigo", "Você convidou você para a festa", "Z levou o último quizz" ... e eu não sei como fazer .

Eu me pergunto qual é a melhor solução:

Solução 1, também conhecida como "registro".

Uma tabela dedicada "notificação". Eu adiciono linhas nesta tabela toda vez que algo levanta uma notificação aconteceu (amigo adicionando, respondendo quizz, etc.). A tabela "notificação" possui campos que contêm informações diferentes, de acordo com o tipo de notificação adicionado à tabela.

Boa : fácil de codificar, separação entre recurso de notificação e recursos "normais", não consumir muito recursos quando preciso ler a tabela.

Mau : Tabela de notificação irá crescer provavelmente muito grande (eu acho que vou adicionar 10k linhas / dia na tabela), informações "duplicadas": informações na tabela de notificação podem ser encontradas em todas as outras tabelas usando data / lista / qualquer comparação.

Solução 2, também conhecida como "procure em todos os lugares".

Toda vez que eu preciso mostrar a lista de notificação ou mostrar quantas novas notificações existem, eu olho para toda a tabela em questão, compare data / etc para saber se algo novo aconteceu desde a última vez que o usuário verificou a notificação.

Boa : Não é uma tabela muito grande em comparação com a solução 1, sem "redundância" de informações.

Mau : Estou com medo por causa do número de usuários (~ 1k +), faz o servidor explodir porque é recurso / tempo, pouco mais difícil de codificar / manter.

Você pode, por favor, me dizer o que acha melhor e por que, ou você tem uma solução que eu não imaginei?

Obrigado =)

Editar: Digamos que eu use um design de banco de dados realmente básico: os usuários têm amigos, podem fazer questionários.

1 tabela para lista de usuários, lista de perguntas,

1 tabela quizz <-> relação de usuário,

1 usuário de mesa <-> usuário para amizade.

Toda vez que um usuário visita seu próprio perfil, ele pode ver o que aconteceu: novo quiz <-> relação de usuário, novo usuário <-> relação de usuário, etc. Como você projetaria uma notificação como essa?

questionAnswers(4)

yourAnswerToTheQuestion