Могут ли некоторые предложить лучший способ реализовать это:
По сути, я хочу иметь виртуальную таблицу в PostgreSQL, которая при запросе ищет данные из какой-то другой таблицы (назовите этотаблица необработанных данных).Но суть в том, что данные из таблицы необработанных данных необходимо преобразовать, и когда это будет сделано, результаты будут возвращены, как если бы они были в исходной таблице.
Я объясню с помощью иллюстраций и примера (не моя настоящая программа, а просто упрощенный пример, объясняющий основные вещи, которые мне нужны):
Таблица необработанных данных
| id (int) | data (byte[]) |
----------------------------
| ... | ... |
| ... | ... |
Таблица персонала (виртуальная таблица)
| name (varchar) | address (varchar) | phone (varchar) |
--------------------------------------------------------
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
Теперь я хочу получить следующее:
SELECT * FROM person WHERE name = 'Kim';
- Запрашивать данные из необработанной таблицыт.е. получить все байтовые массивы [];
- десериализовать данные для получения (имя, адрес, телефон) из необработанных данных;
- применить любые условия, например name = 'Kim'
- Возвращать этот набор результатов пользователю, как будто он просто запросил таблицу Person.
Для десериализации / преобразования и т. Д., Я предполагаю, что мне могут понадобиться некоторые функции языка программирования, поэтому дляJava может пригодиться что-то вроде Pl / Java ?
Alsо, вы можете предположить, что таблица необработанных данных будет не очень длинной, она реализована для работы в качестве буфера фиксированного размера, поэтому не составляет особой проблемы чтение всех записей для каждого запроса.
Концептуально, чтоМне нужна функция триггера, но, похоже, у нас не может быть триггера на READ.Буду признателен за любую помощь в том, как я могу это сделать.