2010-11-15 5 views
0

Я создаю профили пользователей и имеют несколько вопросов, относящихся к схеме для уровней секретности:Социальная сеть - уровни конфиденциальности - схема базы данных

Для более детально -> Есть несколько полей, как на facebook - день рождения, пол, место , интересы, отношения, полное имя пользователя и т. д. С точки зрения базы данных - как это делается? Я использую MySQL, так что, прежде всего, могут ли уровни конфиденциальности работать в MySQL или мне нужна нереляционная БД? Затем, чтобы назначить приватность на полевом уровне это следующим образом:

Таблица объектов -> Профиль поле 1, поле профиля 2, .....
конфиденциальности таблицы поиска -> Друзья = 1, Друг друга = 2, Everyone = 3, Заблокированный список = 4, ...
Таблица объектов пользователя -> Поле профиля 1 имеет поиск в режиме конфиденциальности 1 (что означает, что поле 2 установлено только для друзей)?

Вышеупомянутые работы хорошо подходят для уровня конфиденциальности фиксированного списка, но если у нас есть уровни конфиденциальности не в списке, например: я хочу заблокировать человека X, Y & Z и разрешить одному пользователю по имени A видеть его, нет фиксированного уровней для этого, так как представить это на уровне схемы?

Это уровень подачи, но конфиденциальность даже на более высоком уровне объекта, например, отдельные фотографии, отдельные видео и т. Д. Итак, какие-либо общие предложения по использованию БД для использования/базовой схемы, чтобы вести меня о том, как это сделать?

Спасибо.

ответ

0

Что вы можете сделать, это реализовать Моделирование отношений сущностей, которые позволят вам неограниченный список конфиденциальности.

Вы можете иметь таблицы как ДАННЫЕ:

Privacy 
id varchar(36) 
label text() 

IsPrivacyActivated 
privacyid  varchar(36) 
isActivated boolean 

UserPrivacy 
userid varchar(36) 
privacyid varchar(36) 

Таким образом, вы можете реализуете все функции, указанные выше действительно легко.

Надеюсь, что смогу помочь,

+0

Таблица конфиденциальности - таблица конфиденциальности, которую я предполагаю? Но это не доходит до уровня поля. Как я мог бы представить свой день рождения, чтобы быть видимым, чтобы сказать «Только друзья» и мой Пол «Каждому, но только с г-ном Х и г-м Y заблокирован»? – Dia

+0

Затем на таблице isPrivacyActivated вы добавляете два поля: friendid (varchar (36)) и isViewable (boolean), которые представляют, кому разрешено его видеть. Таким образом, вы можете удалить поле isActivated. – Spredzy

Смежные вопросы