6

Quels sont les modèles de conception pour concevoir le système de confidentialité comme Facebook. L'utilisateur décide quelles informations partager en fonction de ses groupes d'amis. Toutes les informations utilisateur (e-mail, téléphone) sont stockées dans la table de données qui vient de la clé = table de valeur.Comment Facebook gère-t-il les paramètres de confidentialité du côté de la base de données?

Tables actuelles:

  • utilisateur - (id)
  • UserData - (id, user_id, type de données, valeur)
  • Amitié - (user_id, friend_id, friendgroup_id)
  • FriendGroup - (user_id, nom)

Exemple:

  • groupe X peut voir phone_1
  • groupe Y peut voir phone_2
  • Tous les groupes peuvent voir phone_3

Ce schéma peut être modifié.

+0

programmeurs.stackexchange.com serait un bien meilleur forum pour cette question. Je suggère de le déplacer là car ils ont tendance à traiter des questions de conception comme celle-ci. – DMCS

+0

Cette question n'a pas de réponse car aucun employé de FB ne dira réellement comment ils le font. Nous pouvons juste deviner comment ils le font. – whihathac

Répondre

2

Vous devrez créer une table de permissions pour FriendGroup. Dans ce cas, vous devez recueillir la permission donnée à chaque FriendGroup tout en permettant au groupe ou à l'utilisateur de modifier cette autorisation.

Prmissions (permission_id, friend_group, paramètre, visible)

Exemple:

  • groupe X peut voir phone_1
  • groupe Y peut voir phone_2
  • Tous les groupes peuvent voir phone_3
(1,x,phone_1,true) 
(1,Y,phone_2,true) 
(1,x,phone_3,true) 
(1,Y,phone_3,true) 

Vous pouvez plus voir sur les ACL liens suivants:

Database model with users, roles and rights

A Role-Based Access Control (RBAC) system for PHP

Patterns for building social network type applications?

0

vous pouvez ajouter une autorisation de nom de colonne avec tous les champs comme

phone_number et phone_number_permission, photo et photo_permission et valeur d'usage 0,1 , 2,3 dans la colonne d'autorisation

permission rights 
0. Not show to anyone 
1. Show to friends 
2. Show friends of friends 
3. Show to groups and who are your friends 

vous devez gérer cette autorisation sur des données de vue sur la page de profil.

si l'utilisateur == ami et autorisation == 1 Les données montrent