У меня есть одна таблица Person:Как преобразовать вертикальную таблицу в горизонтальную таблицу?
Id Name
1 Person1
2 Person2
3 Person3
И у меня есть свой ребенок таблицы профиля:
Id PersonId FieldName Value
1 1 Firstname Alex
2 1 Lastname Balmer
3 1 Email [email protected]
4 1 Phone +1 2 30004000
И я хочу, чтобы получить данные из этих двух таблиц в один ряд, как это:
Id Name Firstname Lastname Email Phone
1 Person1 Alex Balmer [email protected] +1 2 30004000
- Каков наиболее оптимизированный запрос для получения этих значений вертикальной (клавиши, значения) в одной строке? Теперь у меня есть проблема, что я сделал четыре соединения дочерней таблицы с родительской таблицей, потому что мне нужно получить эти четыре поля. Возможна некоторая оптимизация.
- Я хочу, чтобы иметь возможность изменить этот запрос простым способом, когда я добавляю новое поле (ключ, значение). Каков наилучший способ сделать это? Чтобы создать хранимую процедуру?
Я хотел бы иметь сильно типы в моем уровне БД (C#) и использовать LINQ (при программировании), поэтому это означает, что когда я добавляю новую пару Key, Value в таблицу Profile, я хотел бы сделать минимальные изменения в DB и C#, если это возможно. На самом деле, я пытаюсь получить некоторые лучшие практики в этом случае.
Если во время разработки вы знаете, какие столбцы должны испускать запрос, зачем нужна структура полей открытого поля в таблице профилей? –