Подскажите, пожалуйста, как сделать таблицу в реляционной БД, чтобы потом можно было добавлять поля, не изменяя структуру таблицы? При этом нужно уложиться в
минимальное количество таблиц. Я так понимаю, можно хранить в паре таблиц (или даже одной достаточно?):
https://app.dbdesigner.net/designer/schema/265467
в ObjectId храним id записи "большой" таблицы, FieldName и Value хранят имя поля "большой" таблицы и его значение.
Как это потом достать запросом и получить двумерную таблицу со всеми описанными полями и значениями в них?
Всё что пока сообразил:
spoiler+----+----------+---------+-------------+
| id | ObjectId | Value | FieldName |
+----+----------+---------+-------------+
| 1 | 1 | 1запись | description |
+----+----------+---------+-------------+
| 2 | 1 | 1 | val |
+----+----------+---------+-------------+
| 3 | 2 | 2 | val |
+----+----------+---------+-------------+
| 4 | 2 | 2запись | description |
+----+----------+---------+-------------+
и запрос на 1 поле
(SELECT o.id,f.value as 'description' from test1.dbo.Objects as o
JOIN test1.dbo.Fields f ON o.id = f.ObjectId where FieldName like 'description')
который выдаёт
spoiler+----+-------------+
| id | description |
+----+-------------+
| 1 | 1запись |
+----+-------------+
| 2 | 2запись |
+----+-------------+
а надо чтобы было
spoiler+----+-------------+-----+
| id | description | val |
+----+-------------+-----+
| 1 | 1запись | 1 |
+----+-------------+-----+
| 2 | 2запись | 2 |
+----+-------------+-----+