У меня есть таблица данных, и я разрешаю людям добавлять метаданные в эту таблицу.
Я даю им интерфейс, который позволяет им обрабатывать его так, как будто они добавляют дополнительные столбцы в таблицу, в которой хранятся их данные, но на самом деле я храню данные в другой таблице.
Data Table
DataID
Data
Meta Table
DataID
MetaName
MetaData
Так что, если бы они хотели таблицу, в которой хранятся данные, дата и имя, то я бы имел данные в таблице данных, и слово «Дата» в metaname, и дату в MetaData, и другое строка в мета-таблице с именем в метанаме и именем в метаданных.
Теперь мне нужен запрос, который берет информацию из этих таблиц и представляет ее, как будто она поступает из одной таблицы с двумя дополнительными столбцами «Данные» и «Имя», поэтому для клиента это будет выглядеть так, как будто есть одна таблица с их пользовательские столбцы:
MyTable
Data
Date
Name
Или, другими словами, как мне идти отсюда:
Data Table
DataID Data
1 Testing!
2 Hello, World!
Meta Table
DataID MetaName MetaData
1 Date 20081020
1 Name adavis
2 Date 20081019
2 Name mdavis
Здесь:
MyTable
Data Date Name
Testing! 20081020 adavis
Hello, World! 20081019 mdavis
Несколько лет назад, когда я делал это в MySQL, используя PHP, я сделал два запроса: первый, чтобы получить дополнительные метаданные, второй, чтобы объединить их все вместе. Я надеюсь, что современные базы данных имеют альтернативные методы борьбы с этим.
Относится к варианту 3 из этого вопроса .
-Adam