2016-06-14 3 views
0

저는 mysql 워크 벤치에서 디자인하려고하는 데이터베이스가 2 개인 테이블이 있습니다.두 테이블 사이에 두 개의 링크가 있습니다.

1 테이블 - 회사

1. ID 
2. Company 
3. Company_Number 
4. Created_Date 

이 테이블 - 종업원 나는 회사와 직원 간의 관계를 만들려면

1. ID 
2. Employee 
3. Company_Number 
4. Created_Date 

. 1 회사는 여러 명의 직원을 보유 할 수 있습니다. 문제는 데이터가 매일 덤프 될 수 있기 때문에 Company_Number를 기본 키로 만들 수 없다는 것입니다. 또한 한 직원이 여러 직원을 위해 일할 수 있지만 각 회사의 경우 데이터가있는 추가 행이 있습니다.

두 테이블간에 2 개의 관계를 만드는 방법이 있습니까? 1 CREATED_DATE 1 - CREATED_DATE & 한 많은 company_number에

+0

일반적인 방법은'(companyid, employeeid)'열이있는'company_empoyee '테이블입니다 (두 테이블의 기본 키가 모두 기본 테이블을 참조합니다). 그게 왜 여기서 문제가되는지 이유는 모르겠다. 데이터를 덤프하는 경우 (그 부분을 얻지 못했습니다) 임시 테이블을 사용하여 수행하십시오. – Solarflare

+0

@Solarflare 가장 일반적인 사례를 찾고 있습니다. 글쎄요, 덤핑한다는 것은 데이터베이스에 추가 된 모든 회사에서 일하는 회사와 근로자의 목록이 매일 존재한다는 것입니다. 그 이유는 매일 매일 데이터가 매우 유사하기 때문에 기본 키가 무엇인지 알지 못했기 때문입니다. – Higeath

+0

흥미로운 의미 론적 질문입니다. 조직과 직원 간의 관계가 완료 될 때까지 직원은 직원이 아닙니다. 나는이 솔루션 Solarflare 동의해야 할 것입니다. 당신이 제안한 구조는 매우 "폐쇄적"이며 직원이 더 이상 없을 때를 허용하지 않을 것입니다. 위의 의견을 읽은 후, 나는 질문이 있습니다. 이것은 창고에 대한 노력보다 더 많은 것입니까? –

답변

1

Employee 테이블에서 Company_Number 삭제 company_number하는, 새로운 테이블을 생성,의 당신이 2 열 ID_Company,ID_Employee, created_table을 보유하고있는 WorksFor 말을하자

키 차로서 그 2 열을 내부는 company_number에 가입
+0

또한 직원이 활성 상태인지 또는 종료되었는지 식별 할 수있는 플래그 상태 열이 있습니다. – DRapp

0

당신에게 관계

select c.* e.* 
from Company as c 
INNER JOIN Employees as e on e.company_number = c.Company_number 

를주고 당신은이 열에 관계를 만들 수 있습니다 또한

관련 문제