나는 하나의 테이블 사람이 있습니다세로 테이블을 가로 테이블로 변환하는 방법은 무엇입니까?
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
- 이러한 세로 (키, 값) 값을 한 행에 입력하는 데 가장 최적화 된 쿼리는 무엇입니까? 이제 네 개의 필드를 가져와야하기 때문에 부모 테이블에 자식 테이블의 네 조인을 했으므로 문제가 발생했습니다. 일부 최적화가 가능합니다.
- 새 필드 (키, 값)를 추가 할 때이 쿼리를 쉽게 수정할 수 있습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 일부 저장 프로 시저를 만들려면 어떻게해야합니까?
내 DB 계층 (C#)에 강하게 입력하고 LINQ (프로그래밍 할 때)를 사용하고 싶습니다. 그래서 새로운 키를 추가 할 때 프로필 테이블의 값 쌍을 최소한으로 수정하고 싶습니다. 가능한 경우 DB 및 C#. 사실이 경우에는 몇 가지 모범 사례를 얻으려고합니다.
쿼리가 어떤 열을 내야하는지 디자인 타임에 알면 왜 프로필 테이블에 개방형 필드 구조가 필요합니까? –