Реализуйте структуру базы данных со значением isVisible для каждого столбца - PullRequest
0 голосов
/ 17 февраля 2019

Я много работал с БД, но никогда не придумывал.Я борюсь за структуру, на одной из самых распространенных таблиц, личные данные :

Основная таблица называется user с несколькими столбцами.Тогда у меня есть General , который будет иметь (идентификатор, userRef, имя, фамилия, возраст, адрес электронной почты, полRef, номер телефона, addressRef) и так далее ..

Проблема в том, что каждый из этогозначение / столбец, должен иметь значение Visible .

Не думаю, что хорошей практикой является помещать все в одну таблицу, например (name, nameVisible, age, ageVisible),И ни для того, чтобы создать таблицу для каждого из них ..

Не могли бы вы посоветовать какое-нибудь лучшее решение?спасибо.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Если вы хотите контролировать видимость столбца, я бы порекомендовал использовать представления.

Если флаг «видимый» предназначен для всей таблицы, просто создайте нужное представление:

create view visible_personal_data as
    select  -- visible columns here
    from personal_data;

Если вы хотите, чтобы этот флаг был специфичным для каждой комбинации строки / столбца, я бы порекомендовал сохранить его в данных.,,но все еще используя представление:

create view visible_personal_data as
    select (case when userRef_isvisible then userRef end) as userRef,
           (case when name_isvisible then name end) as name,
           . . .
    from personal_data;

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

0 голосов
/ 17 февраля 2019

По моему мнению, создайте еще одну таблицу, в которой вы можете создать три столбца, как показано ниже

  table_name,column_name,is_visible 

, поэтому из этой таблицы вы будете контролировать, какой столбец будет видимым, а какой нет

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