나는 각각 고유 ID "personID"를 가진 아주 기본적인 이름 주소 연령 등의 데이터베이스 테이블을 가지고 있습니다. 그것과 연결된 나는 각각의 사람마다 잠재적으로 다른 추가 필드를 저장하기 위해 EAV 테이블 세트를 가지고있다. 나는 이미 person 테이블에서 C# person 객체 또는 person 객체의 배열로 레코드를 저장하고로드하는 코드를 가지고있다. 그러나 EAV 레코드의 로딩을 처리하는 방법을 잘 모르겠습니다. 나는 "name"과 "value"를 가진 프로퍼티 배열 인 "properties"라는 person 객체에 배열을 추가하려고합니다. 예를 들어 내가 하나의 객체가 좋아 보인다로드EAV에서 객체 직렬화로드하기 데이터베이스 구조
PersonA.Properties[i].Name = "Age";
PersonA.Properties[i].Value = 22;
를 코딩 할 수 그래서 사람들 테이블과 속성을로드하거나 하나의 호출이 데이터 집합을 반환하는 두 번째 호출에서 세부 사항을로드 한 데이터베이스 호출을 할 수 있습니다. 그러나 어떻게 각 사람이 그들의 속성 배열을 가진 사람들의 배열을 얻을 수 있습니다. 아무도 예제에 대한 링크가 있다면 감사 할 것입니다. 내가 좋아하는 코드를 할 수 있도록 또한 보너스 포인트는 당신이 나에게 속성을 구현하는 방법에 대한 팁을 제공 할 수있는 경우 : SQL 서버와
PersonA.Properties["Age"] = "22";
EAV가되어야합니까? 나는 문서 기반 데이터베이스, 예를 들어 스토리지 JSON 또는 XML에 대해 심각하게 고려할 것이다. –
문서 기반 또는 JSON에 대해 아무 것도 모른다.하지만 필자는 XML로 특성을 저장하고 XML을 person 테이블의 필드로 저장한다고 가정한다. 당신의 제안입니다) 어떻게 그 정보를 쿼리 할 수 있습니까? 예를 들어 연령 = 22 인 모든 레코드를 반환합니까? – Jammy
@Jimmy - 전용 document-db에는 쿼리 구문이 있습니다. 아마 레이븐을 봐? SQL 서버에서는 XML 데이터 유형을 사용할 수 있고 xpath 쿼리를 발행하거나 영구적 인 색인 된 계산 된 열에 xpath를 승격시킬 수 있으므로 WHERE ColName = value –