Como criar um conjunto de regras baseado em banco de dados para o sistema de conquista de aplicativos da web?

Estou planejando um sistema de conquista para um site ASP.NET MVC. Quero que as "regras" das conquistas sejam armazenadas em um banco de dados - para ser mais fácil adicionar novas conquistas e um local central para gerenciar regras existentes. Os usuários não terão acesso para alterar as regras.

Quando um usuário executa uma ação que pode potencialmente obter uma conquista, as regras do banco de dados serão consultadas e, se houver correspondências, fornecerão as conquistas (armazenadas em uma tabela de pesquisa (userId ,tainmentId, dateAwarded)).

No momento, estou planejando colocar os "gatilhos" em determinadas ações no controlador, mas o código que faz o trabalho estará no modelo.

Existe um esquema de banco de dados padrão para um sistema de conquista que realiza isso? Não há necessidade de reinventar a roda, se não for necessário. Se não, que tipo de problemas você acha que apareceriam, o que procurar?

questionAnswers(1)

yourAnswerToTheQuestion