Надеюсь сам допру, пока создаю тему.
Разрабатываю корпоративный проект, давно пора разобраться с настройками приватности, но котелок тормозит как только об этом подумаю.
Вообщем есть сейчас таблица с юзерами, обычная, ничего особенно (id,login,mail и т.д.)
Необходимо дать пользователям возможность скрывать некоторые поля, почту к примеру или icq.
Как я думаю: продублировать поля в таблице с префиксом p_ (приватность)
то есть - есть поле mail , для него поле p_mail
есть ip - p_ip
в полях с префиксом p_ будет значение 1\0 - (Показывать\Скрыть)
Вроде бы всё хорошо
if($row['p_mail']) {
echo $row['mail'];
} else {
echo 'Поле скрыто';
}
Но для полей должны быть заданы настройки по умолчанию.
К примеру ip по умолчанию скрыты, только админ их видит.
Что, делать рядом еще поля типа d_mail (default) ? бред мне кажется.
К тому же в первую таблицу планируется динамически добавлять поля, такие как icq , room, phone и т.д.
И тут я не знаю на сколько плохо, когда таблица разрастается горизонтально, тем более если к каждому полю добавлять два поля с настройками (icq,p_icq,d_icq).
Тут возникла идея сделать еще одну таблицу где просто будут - id поля , имя поля, и значение по умолчанию (name,default) а и еще поле allow со значением 0\1 можно ли его скрывать или нет.
Если allow == 1 значит пользователь может изменить настройки приватности к этому полю.
Таким образом мы избавляемся от полей типа d_mail, но выборка будет сложнее.
Теперь бы еще избавиться от полей типа p_mail.
Тут возникла идея сделать еще одну таблицу, уже блин третью.
В это таблице будет - вот тут не знаю, либо сделать поля типа p_mail
То есть полная копия первой таблицы, только в значениях будут нули, единицы вместо имён и почт
либо сделать так
id узера, id поля, новое значение
1,1,0
13,12,1
1,2,1
1,3,1
но так база разрастётся кажется.
Вот пока писал, ни чего другого не придумал =(
На мой взгляд 3 таблицы это как то жестко.
Как будет выборка выглядить?
вместо обычного запроса нужно будет делать 3
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2