2014-10-30 2 views
0

나는 SQL에 대해 아주 익숙하다. 내가 일하는 건축 회사에서 프로젝트를위한 첫 번째 데이터베이스를 설계하고 있습니다. ERD를 만들었습니다. 단 5 점 밖에 없기 때문에 삽입하지 않아도됩니다. 지금, 관리 클라이언트에 대한 다음 정보를 추가하고 싶어 :클라이언트에 관한 많은 정보를 추가하는 방법

      ACTIVE CLIENTS 
          - how they found us 
          - time frame for project to start 
          - type/style 
          - why they chose us/contacted us 
          - project refernce 
          - budget 
          - primary or secondary residence 
          - project size 
          PAST CLIENTS 
          - last time contacted 
          - 
          POTENTIAL CLIENTS 
          - how they found us 
          - time frame for project to start 
          - budget 
          - project size 
          - last contacted/who/when/how 
          LOST CLIENTS 
          - why (see below) 
           - cost/fees 
           - compatability 
           - time frame/availability 
           - no answer 
           - design style/other firm 
           - other 

내 질문은 이것이다 : 이러한 ActiveClients, PastClients, PotentialClients 및 LostClients라는 다른 테이블해야 하는가? 그렇지 않은 경우 클라이언트 테이블의 일부입니까?

별도의 테이블 인 경우 기본 테이블의 키가 클라이언트 테이블의 외래 키로 표시됩니까?

고마워요.

+0

정상화를 유지합니다. 그게 무슨 뜻인지 모르겠다면, 필자는 Mere Deals를위한 데이터베이스 디자인에 대한 좋은 이야기를 들었습니다. 어떤 일을하기 전에 디자인 원칙에 익숙해지는 것이 가치가있을 것입니다. 기억해야 할 점은 두 번 이상하는 것보다 시간을 많이들이는 것입니다. –

+0

별로 도움이 안됨, Dude –

+0

SusanE.Russel, @ DanBracuk의 대답은이 시나리오에서 수행 할 작업을 구체적으로 말해주지 않을 수도 있지만, 일반적인 조언은 사실 더 장기적으로 도움이 될 수 있습니다. 그가 언급 한 책은 자신에게 이것을 어떻게 디자인 할 것인지에 대한 좋은 아이디어를 줄 것입니다. 결국 인터넷상의 무작위 사람들은 프로젝트의 바닥에있는 사람들이 아닙니다. 러프 스케치 (내 대답과 같은) 올바른 방향으로 당신을 가리킨 수도 있지만 지식과 논리를 internalize 훨씬 더 도움이 될 것입니다. – AHiggins

답변

0

확실히 다른 테이블에 다른 클라이언트 유형을 넣지 마십시오. 클라이언트를 다른 상태로 이동해야한다면 어떻게해야합니까?

다른 테이블에 넣을 수있는 클라이언트에 대한 세부 정보가 있습니다. 예를 들어 테이블을 사용하여 클라이언트 상태 및 클라이언트 손실 이유를 저장할 수 있습니다. & 거주지가있는 테이블 (기본, 하나는 보조).

enter image description here

Residence (또는 Address)는 그것에 어드레스와 테이블이다; 된 ClientID하고 주요 거주지를

ClientStatus인지 말할 플래그를 ClientStatus (잠재적 인 활성 과거,,, 분실)을 & ClientStatusID

ClientLossReason 포함하는 목록 테이블 ClientLossReason (비용, Compabitibility를 포함하는 또 다른 목록 테이블입니다 포함 , 시간 프레임, 디자인 스타일, 기타, 알 수 없음) 및 ClientLossReasonID

Client에는 클라이언트에 대한 핵심 정보 (마지막 연락처, 소스 등)가 들어 있습니다.

Project가 된 ClientID를 포함하여 프로젝트에 대한 세부 사항을 포함 (결국, 클라이언트가 하나 이상있을 수 있습니다 ..)

관련 문제