Logros / Sistema de Insignias.

He estado buscando en este sitio la respuesta, pero todavía no estoy seguro de cómo planificar un sistema similar en su estructura de base de datos e implementación.

En PHP y MySQL quedaría claro que algunos logros se obtienen de inmediato (cuando se realiza una acción especializada, en el caso de SO: Se completaron todos los campos de perfil), aunque sé que SO se actualiza y asigna credenciales después de un cierto tiempo. Con tantos usuarios y distintivos, esto no crearía problemas de rendimiento (en términos de escala: gran número de usuarios y distintivos).

Así que la estructura de la base de datos que asumo sería algo tan simple como:

Badges     |    Badges_User      |    User
----------------------------------------------
bd_id      |    bd_id            |  user_id
bd_name    |    user_id          |  etc
bd_desc    |    assigned(bool)   |  
           |    assigned_at      |

Pero como algunas personas han dicho, sería mejor tener un enfoque de estilo incremental para que un usuario que tenga 1,000,000 publicaciones en el foro no ralentice ninguna función.

¿Sería entonces otra tabla para credenciales que podría ser incremental o simplemente un campo de 'progreso' en la tabla badges_user de arriba?

Gracias por leer y concéntrese en la escalabilidad del sistema deseado (como SO miles de usuarios y 20 a 40 credenciales).

EDITAR: para aclarar un poco la confusión que había asignado como Fecha / Hora, los criterios para otorgar la credencial serían los mejores colocados dentro de las consultas / funciones preparadas para cada credencial, ¿no es así? (mejor flexibilidad)

Respuestas a la pregunta(4)

Su respuesta a la pregunta