2012-01-13 5 views
0

내 웹 응용 프로그램은 일부 사람 정보로 구성됩니다. 나는 테이블 디자인에 대해 걱정하지 오전 같은웹 응용 프로그램 클래스 디자인 조언?

personid    autoid    clubid    personalinfoid 
fname     carmodel    clubname   personid 
mname     cartype    clubaddress   height 
lname     carcolor         ethnicity 
address    license#         driverslicense# 
address2    boattype         
homephone    boatsize 
cellphone 

등 기본적으로 내 데이터베이스에서 나는 것 필드는 단지 예를 들어 이런 짓을.

더 명확하게하려고 내 질문을 편집했습니다. 이런 성격의 웹 애플리케이션을위한 클래스 디자인에 어떻게 접근 할 것인가? 각 테이블에 대해 별도의 클래스를 사용해야합니까?

내가 염두에 두었던 것은 모든 필드와 속성을 보유하는 속성 클래스를 만들고 db에서 모든 것을 가져오고 설정하는 것이 었습니다. 그런 다음 person.cs, auto.cs, personinfo.cs 및 clubs.cs 클래스를 만드는 것이 올바른 방법일까요?

+2

난 당신이 사용하는 모든 프로퍼티/필드 이름 앞에에서 단어 "사람"을 제거하여 시작합니다 :

그래서 PersonalInfo 객체는이 사용 EF 같이 보일 것입니다. "사람"개체와의 관계는 개체 및 디자인을 설정하는 방법에서 명확해야합니다. –

+0

정보를 개념화하는 방법에 대해 설명합니다. "사람 클럽"(나에게)은 "사람"과 "클럽"간의 관계를 정의하는 것입니다. 멤버십이 아니라 개체 엔터티. 당신은 회원 인 모든 사람의 모든 클럽의 이름과 주소를 반복하지 마십시오. 클럽은 독특합니다. "사람"을 대상에서 분리하십시오. 고유 한 엔티티에 대해 생각해보십시오. 그런 다음 현실감을 설명하십시오. –

+0

나는 사람을 데리고 나갔다.하지만 내가 말했듯이 이것은 실제 필드가 아니라 실제 필드가 아니라는 예이다. 나는이 성질의 프로젝트에 접근하는 방법을 이해하기 위해 노력하고있다. – Tim

답변

0

당신이 제안한 것은 합리적이고 Object to Database 프레임 워크가하는 것입니다!

예를 들어 Entity Framewor k를 사용했다면 먼저 클래스를 만들고 ("상상할 수없이 코드 우선") EF가 데이터베이스를 생성 할 수 있습니다. 마찬가지로 "데이터베이스 우선"을 수행하고 데이터베이스 스키마를 작성한 다음 EF가 클래스를 생성합니다. 개인적으로 나는 이전 버전보다 데이터베이스 버전 관리를 조금 더 많이 사용하기를 선호합니다.

사용할 수있는 다른 프레임 워크가 많으며 이는 단지 하나의 예일뿐입니다. 내가 당신이라면

public class PersonalInfo 
{ 
    public int Id { get; set; } //EF will automatically figure out this is your PK 
    public double Height { get; set; } 
    public string Ethnicity { get; set; } 
    public string DriversLicence { get; set; } 

    //EF automatically figures out that the PersonId property refers to your Person table 
    public int PersonId { get; set; } 
    public virtual Person Person { get; set; } //navigation property so you can do personalInfo.Person.FirstName 

} 
관련 문제