структура базы данных для пользователя скрыть свою личную информацию - PullRequest
0 голосов
/ 05 апреля 2011

Как структура базы данных для пользователя скрывает его личную информацию, такую ​​как hp, адрес электронной почты и полное имя?

Должен ли я создать таблицу (hidden_info) для хранения всей личной личной информации пользователей, когда пользователи устанавливают их как частные на моем веб-сайте.

Затем на странице user-profile.php используйте mysql, чтобы выбрать * на hidden_info_table, где user == $ username, а затем используйте другой mysql, чтобы выбрать и отобразить информацию, которой нет в списке hidden_info_table?

Это будет много работы, есть ли другой лучший способ построить базу данных для скрытия функции личной информации пользователя?

Ответы [ 2 ]

3 голосов
/ 05 апреля 2011

Я бы не использовал отдельную таблицу.У меня будет отдельная таблица настроек, которая будет содержать доступные параметры конфиденциальности.

Settings

 SettingId int 
 SettingName varchar(100)

UserSettings

 SettingId int
 UserId int

Настройки могут быть HideEmail , HideRealName, HidePhoneNUmber , например, и вы можете получить пользовательские настройки, когда пользователь аутентифицируется, и сохранить их в состоянии сеанса в виде массива строк (или пользовательской модели)

Затем вы можете запросить настройки пользователя следующим образом:

SELECT SettingName
  FROM UserSettings
  LEFT JOIN Settings
  on UserSettings.SettingId = Settings.SettingId
WHERE UserId =1

Это вернет список настроек для текущего пользователя.Это должно быть довольно легко для вас, чтобы разобраться с PHP стороной вещей из этого.

  • Сохранить результат в строковом массиве
  • Проверить, если YourSetting присутствует в массиве, если он не показывает этот элемент

После того, как у вас есть массив, просто проверьте, существует ли значение и выполните необходимую логику

if (!in_array("HideEmail", $results)) {
    echo "Show email address here";
}
0 голосов
/ 05 апреля 2011

Создать столбец после электронного письма с именем email_hidden

SELECT * FROM user_info ГДЕ ID пользователя = $ ID

<?php

  if( !$user_info['email_hidden'] ) { echo $user_info['email'] }

?>

Дубликат для других полей

Это самый простой метод, хотя и не самый эффективный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...