0

나는 사무실 건물에있는 사람들의 출입을 통제해야하는 windows forms 애플리케이션을 만들고 있습니다. 이 사람들은 방문객이나 직원이 될 수 있으며 모든 사람들이 건물 출입구에서 출입 카드를 사용해야합니다. 그 사람이 방문자 일 때 카드가 일시적으로 프로그래밍되고 직원들은 자신의 카드를 사용해야합니다. 나의 의심은 나의 데이터베이스에 관한 것이다. 이것을 멋지게 할 수있는 방법이 있습니까? 카드 (직원인지 방문객인지에 관계없이)는 회전문에 대한 강한 열쇠를 가지고 있기 때문에 십자형 회전식 문의 제조업체에서 제공 한 것으로 식별 할 수 있으며 변경할 수 없습니다. 그래서, 제 구조는 다음과 같습니다 :두 개의 분리 된 테이블 대 두 개의 열이있는 하나의 테이블

제 데이터베이스에는 카드를 보관할 테이블이 있습니다. 누군가가 건물 안으로 들어가려고 할 때, 회전식 문은 내 시스템에 액세스 날짜와 시간 및 카드 코드를 보냅니다. 이제 직원과 방문자를 분리하는 방법을 알지 못합니다. 직원 및 방문객에게 분리 된 플로우 테이블을 제공해야합니까? 직원 흐름 테이블의 경우 동일한 ID를 사용하여 직원 카드를 카드 테이블에서 가져옵니다. 방문자 흐름 표에서 임시 카드를 사용하는 방문자가 누구인지 알아야합니다 (임시 카드의 키는 절대로 변경되지 않으므로 키에만 의존 할 수 없습니다). 또는 Visitor_ID 및 Worker_ID 열이있는 흐름 테이블 만 있어야합니다. 그 중 하나는 항상 null입니다 (값이있는 필드의 직원 또는 방문자 인 경우 알 수 있습니다).

두 사람 중 누가 더 적절하고 왜 그런지 말해 줄 수 있습니까?

+2

그녀가 직원인지 여부를 나타내는 0 또는 1을 저장하는 IsEmployee라는 열을 가질 수 없습니까? – Minh

답변

1

직원과 방문자는 모두 사람입니다. 특히 액세스 카드가 할당되어 있거나 할당되지 않은 사용자입니다.

AccessCard 테이블과 외래 키 관계가있는 People 테이블이 하나 있습니다. 그 사람이 직원인지 방문객인지에 대해서만 신경을 쓰지만 저장 한 정보가 다른 경우에는 부울 열이 좋습니다. 시스템에 직원 및/또는 방문자에 대한 추가 정보가 저장되어있는 경우 직원 및 방문자 테이블을 만들고 People에서 People까지 각각 외래 키 관계가 있어야합니다.

+0

감사합니다. @ Eric-J. 나는 그것을 줄 수있다! –

1

직원과 방문자를 모두 저장하는 단일 테이블을 만든 다음 Type (E, V)에 대한 추가 열을 추가합니다.

관련 문제