Если конфиденциальность по умолчанию будет показана всем, тогда вы можете создать таблицу, в которой будут храниться все настройки скрытия определенного пользователя для определенного пользователя.
Я бы предложил таблицу с составным PK из трех столбцов :
hide_details
------------
visitor_id
user_id
what
Некоторые примеры данных будут:
visitor_id | user_id | what
1 2 age
1 2 name
3 4 salary
Эту схему таблицы не нужно будет обновлять в будущем, если вы добавите еще один столбец в таблицу ваших пользователей. Предложение, если вы хотите сделать это удивительно быстро, вы можете сопоставить имена столбцов с целыми числами и использовать их в логике своего приложения для сравнения. Например. name = 1, age = 2 и т. д. Итак, когда вы делаете сравнение, чтобы скрыть имя или нет, вы просто проверяете, есть ли запись с этим целым числом в массиве hide.
Вы можете использовать его следующим образом: перед отображением профиля вы извлекаете все записи о скрытии этого посетителя в этот профиль и помещаете их в массив, а затем отображаете все, что не было скрыто.
Е.Г.
$hide = array('name', 'age', 'salary');
Затем вы можете проверить как:
echo (in_array($hide)) ? '' : '<div>Name:'.$name.'</div>';