2012-02-20 2 views
2

사용자가 자신의 엔터티를 만들도록 허용하려고합니다. 예 : - 학생 (이름, 나이, 학교, 사진 등) - 동물 (이름, 유형, 국가 등) . - 자동차 (브랜드, 색, 가격 등) 등애플리케이션의 클래스 구조 및 데이터베이스 구조

그리고 사용자는 생성 된 엔티티에 따라 데이터베이스에 레코드를 추가 할 수 있습니다.

모든 속성은 문자열입니다.

내 질문에 어떻게 데이터베이스에서 이러한 엔티티의 인스턴스를 저장할 수 있습니다. 작성된 각 엔티티에 대해 새 테이블을 작성하는 것은 궁금합니다. 나는 모든 엔티티에 대한 속성을 테이블에 저장 한 다음이 엔티티의 인스턴스 인 다른 테이블에 저장하려고 생각했지만 속성은 예를 들어 쉼표로 구분됩니다. (학생)

법인 구조 테이블 :

property_name entity_key 

name    student 
age    student 
school   student 
photo   student 

엔티티 인스턴스 테이블 :

instance    entity_key 

joe,19,nyhigh,joe.jpg student 

내가 뭘 이러한 기록의 인스턴스를 만들 것입니다 누구와 함께 클래스는 어떻습니까? (? 자동 생성 클래스?) ('joe, 12, nyhigh, joe.jpg'문자열을 구분할 List 속성이있는 클래스) 누구든지 이런 유형의 문제를 전에 만났습니까?

asp.net C#에서 응용 프로그램을 개발할 것입니다.

+0

데이터베이스에있는 데이터로 무엇을 할 것인가? 일반적으로 쉼표로 구분 된 값을 데이터베이스에 저장하지 마십시오. – Randy

+0

첫 번째 과제는 숙제입니까? 또한 문자열을 저장하려는 모든 속성이 있습니까? –

+0

아니요, 숙제가 없습니다 :) 네, 그 문자열 – hhh3112

답변

1

엔티티를 직렬화하고 인스턴스 열에 저장하십시오. 값에 대해 DB 쿼리를 수행해야하는 경우 XML 직렬화를 사용하십시오.

public static string SerializeToString(object obj) 
{ 
    using (var serializer = new XmlSerializer(obj.GetType())) 
    using (var writer = new StringWriter()) 
    { 
     serializer.Serialize(writer, obj); 
     return writer.ToString(); 
    } 
} 
0

당신은 엔티티 타입 테이블과 엔티티 속성 테이블을 만들고 그것들 둘을 서로 연결할 수 있습니다. 모든 속성이 문자열 인 경우. 그렇지 않은 경우 엔터티 속성 테이블에 형식을 저장할 수도 있습니다.

0

당신은 이름 값 쌍 테이블을 작성해야합니다 그것은 학생 테이블

학생

ID의 INT
FIRSTNAME의 NVARCHAR (50)
성을 NVARCHAR (50)

를 가리있다

NameValue

ID int PK
이름 nvarchar (50)
StudentID INT FK
값 NVARCHAR (50)

당신은 당신이 그것의 모든 피벗해야하므로 진정한 번거 로움로 바뀝니다 데이터베이스를 quering 찾을 수 있습니다. 그러나 각 개체가 참으로 고유하다면 피벗이 도움이되지 않습니다.