2014-11-16 3 views
0

나는 다음과 같은 질문이 있습니다 "사람", "개인", "회사", "고객", "공급자"추상화를

: 나는 다음과 같은 기관이있는 응용 프로그램을 개발하고 있어요

"사람"개체는 추상화입니다. "개인"은 "사람"이지만 "회사"는 "사람"이지만 몇 가지 고유 한 속성이 있습니다.

내 질문은 : "클라이언트"는 "개인"일 수 있지만 "회사"일 수도 있습니다, 어떻게 데이터베이스에 저장합니까?

[옵션 1]

tbl_individual 
id 
person_id 
Data_1 
Data_2 
... 
data_N 

tbl_company 
id 
person_id 
Data_1 
Data_2 
... 
data_N 

tbl_customer 
id 
individual_id // Only completed when the client is "Individuals" 
company_id // Only completed when the client is "Enterprise" 
Data_1 
Data_2 
... 
data_N 

[옵션 2]

tbl_person // Here placed the data of "Individuals" and "Company" 
id 
Data_1 
Data_2 
... 
data_N 

tbl_customer 
id 
person_id 
Data_1 
Data_2 
... 
data_N 
+0

당신이 매우 부족한 것 같습니다 좋은 데이터 모델을 보장하기 위해 제공 한 정보의 양,하지만 난 내 두 센트에 던질거야 : 그냥 tbl_person 및 추가 테이블 tbl_company_data에 대한 열 type을 추가합니다. –

+0

핵심 데이터베이스를 만드는 창업 회사에서 일하는 것처럼 만드는 테이블은 소리가납니다. 이 테이블 위에 많은 응용 프로그램을 빌드하기 전에 우수한 작업을 수행해야합니다. tbl_company - person_id가 없어야합니다. person_id 또는 individual_id 연관 테이블에 별도의 회사를 만들어 많은 사람을 적어도 한 회사 관계에 지원할 수 있습니다. 사람이 많은 회사와 관련 될 수 있다고 생각해도 많은 사람과의 관계를 지원할 수 있습니다. 회사는 공급 업체 및 고객이 될 수 있습니까? 사람이 회사 및 공급 업체에있을 수 있습니까? –

+0

아니요. 고객은 회사 또는 사람이 될 수 있지만 동시에 둘 다있을 수는 없습니다. –

답변

0

옵션 2 잘 보인다.

tbl_person // Here placed the data of "Individuals" and "Company" 
id 
type [1 - individual, 2 - company] 
Data_1 
Data_2 
... 
data_N 

tbl_customer 
id 
person_id 
Data_1 
Data_2 
... 
data_N 

tbl_company_data 
id 
person_id 
Data_1 
Data_2 
... 
data_N 
관련 문제