#sql #postgresql
#sql #postgresql
Вопрос:
Допустим, у меня есть таблица со следующими столбцами:
- first_name
- last_name
- высота
- social_security_number
- phone_number
Допустим, я очень часто извлекаю first_name
, last_name
, и height
вместе, когда я извлекаю общедоступные данные, поэтому я хочу объединить их вместе
Аналогично, я хочу связать social_security_number
и phone_number
как личные данные.
Чтобы упростить мои запросы и не допустить ошибок в будущем, я хочу создать какую-то ссылку на несколько столбцов, которая будет служить псевдонимом для общедоступных и частных данных, поэтому:
Я хочу сделать что-то вроде этого:
(выдуманный синтаксис)
ALTER TABLE acc CREATE BUNDLE first_name, last_name, height AS public_acc_columns;
ALTER TABLE acc CREATE BUNDLE social_security_number, phone_number AS private_acc_columns;
А затем используйте его следующим образом
-- returns first_name, last_name, height
SELECT public_acc_columns FROM acc;
-- returns social_security, phone_number
SELECT private_acc_columns FROM acc;
-- returns all columns
SELECT public_acc_columns, private_acc_columns FROM acc;
Комментарии:
1. что такое bundle!!! вы можете создать два представления для достижения своей цели
Ответ №1:
Я бы посоветовал создать два представления SQL. Настройте один как acc_public и один как acc_private. Хотя я не знаю, понадобится ли private.
Тогда вы могли бы сказать:
Select * from acc_public
Или
Select * from acc_private
Не видя всей вашей структуры данных, я не могу сказать синтаксис, который вам понадобится для представления, но вот некоторая общая информация: https://www.w3schools.com/sql/sql_view.asp
Комментарии:
1. Да, это похоже на решение, которое лучше всего соответствует критерию «через шесть месяцев я пойму, что я сделал?».
2. Простой и ремонтопригодный. Спасибо.