2010-11-15 25 views
0

Je crée des profils d'utilisateurs et que vous avez quelques questions relatives au schéma pour les niveaux de la vie privée:Réseau social - niveaux de confidentialité - schéma de base de données

Pour plus de détails profil -> Il y a plusieurs champs comme sur facebook - anniversaire, le sexe, le lieu , intérêts, relations, nom complet de l'utilisateur, etc. Du point de vue de la base de données - Comment cela est-il fait? J'utilise MySQL donc la première chose est que les niveaux de confidentialité peuvent bien fonctionner dans MySQL ou ai-je besoin d'une base de données non relationnelle? Ensuite, pour affecter la vie privée au niveau du terrain est comme ceci:

table objet -> champ Profil 1, champ de profil 2, .....
Confidentialité table de consultation -> Friends = 1, ami d'un ami = 2, Tout le monde = 3, liste bloquée = 4, ...
table objet utilisateur -> champ profil 1 a la vie privée recherche 1 (ce qui signifie champ 2 est défini à des amis seulement)? Ce qui précède fonctionne bien pour un niveau de confidentialité de liste fixe, mais si nous avons des niveaux de confidentialité non liste, par exemple: Je veux bloquer la personne X, Y & Z et permettre à un utilisateur nommé A seulement de le voir, il n'y a pas de fixe niveaux pour cela, alors comment représenter cela au niveau du schéma?

Ceci est un niveau classé, mais la confidentialité est même à un niveau d'objet supérieur comme des photos individuelles, vidéos individuelles, etc Donc, des suggestions générales sur la base de données pour utiliser/schéma de base pour me guider?

Merci.

Répondre

0

Ce que vous pouvez faire est de mettre en œuvre une modélisation Entité Relation qui vous permettra une liste illimitée de la vie privée.

Vous pouvez avoir des tables comme Thise:

Privacy 
id varchar(36) 
label text() 

IsPrivacyActivated 
privacyid  varchar(36) 
isActivated boolean 

UserPrivacy 
userid varchar(36) 
privacyid varchar(36) 

De cette façon, vous pouvez implémente toutes les fonctionnalités dont vous avez déclaré très facilement au-dessus.

espoir que je pourrais aider,

+0

table de confidentialité est la table de consultation de confidentialité je suppose? Mais cela ne descend pas au niveau du terrain. Comment est-ce que je représenterais mon anniversaire à être visible pour dire "seulement des amis" et mon genre à "tout le monde mais avec seulement M. X et M. Y bloqués"? – Dia

+0

ensuite sur la table que vous ajoutez isPrivacyActivated deux champs friendID (varchar (36)) et isViewable (Boolean) qui représentent qui est autorisé à le voir. Vous pouvez donc supprimer le champ isActivated. – Spredzy