¿Cuáles son los patrones de diseño para diseñar un sistema de privacidad como Facebook?¿Cómo maneja Facebook la configuración de privacidad en el lado de la base de datos?
El usuario decide qué información compartir según sus grupos de amigos. Toda la información del usuario (correo electrónico, teléfono) se almacena en la tabla de datos que solo muestra la clave = tabla de valores.
Tablas actuales:
- usuario - (id)
- UserData - (id, user_id, tipo de datos, valor)
- Amistad - (user_id, friend_id, friendgroup_id)
- FriendGroup - (user_id, nombre)
Ejemplo:
- grupo X puede ver PHONE_1
- grupo Y puede ver phone_2
- Todos los grupos pueden ver phone_3
Este esquema se puede cambiar.
programmers.stackexchange.com sería un foro mucho mejor para esta pregunta. Sugeriría moverlo allí ya que tienden a lidiar con preguntas de diseño como esta. – DMCS
Esta pregunta no tiene ninguna respuesta ya que ningún empleado de FB realmente dirá cómo lo hacen. Podemos adivinar cómo lo hacen. – whihathac