새 데이터베이스에서 접합 테이블을 만드는 데 문제가 있습니다. 다음 쿼리를 사용하여 테이블을 만들었습니다.SQL Server의 접합 테이블
CREATE TABLE dbo.EmployeeUnavailability
(
ID INT IDENTITY(1,1) PRIMARY KEY,
EmployeeName varchar(50),
Monday varchar(10),
Tuesday varchar(10),
Wednesday varchar(10),
Thursday varchar(10),
Friday varchar(10),
Saturday varchar(10),
Sunday varchar(10),
SupervisorName varchar(50),
)
GO
CREATE TABLE dbo.EmployeeAttendance
(
ID INT IDENTITY(1,1) PRIMARY KEY,
EmployeeName varchar(50),
Monday varchar(20),
Tuesday varchar(20),
Wednesday varchar(20),
Thursday varchar(20),
Friday varchar(20),
Saturday varchar(20),
Sunday varchar(20),
SupervisorName varchar(50),
)
GO
CREATE TABLE dbo.EmployeePerformance
(
ID INT IDENTITY(1,1) PRIMARY KEY,
EmployeeName varchar(50),
Attitude varchar(250),
AttitudeDD tinyint,
WorkQuality varchar(250),
WorkQualityDD tinyint,
Communication varchar(250),
CommunicationDD tinyint,
Leadership varchar(250),
LeadershipDD tinyint,
ImprovementAchievement varchar(250),
ImprovementAchievementDD tinyint,
SupervisorName varchar(50),
)
GO
거기에서 세 테이블 모두를 참조하는 접합 테이블을 만드는 데 어려움이 있습니다. 사원 이름과 관리자 이름은 세 테이블에서 동일합니다.
직원은 사용자 도메인의 엔터티입니다. 그러므로 Employee 테이블을 가지고 있어야합니다. 이 경우 직원 이름이 Employee 테이블에 있으며 여러 번 반복해서 입력하지 않아도됩니다. dbo.EmployeeUnavailability를 살펴보십시오. 그 테이블의 어떤 행이 말하고있는거야? 월요일 열의 의미는 무엇입니까? 좋아, 몇 주 동안 우리가 얘기하고 있니? 더 명확하게 열의 이름을 변경하십시오. –
죄송합니다, 당신은 기본으로 돌아 가야합니다. 각 요일에 대한 열이 없습니다. – Kermit
해당 연도에 연도 정보와 주 번호를 추가하면 이러한 열을 가질 수 있습니다. 그렇게하면 우리가 정보를 캡처하는 날짜를 정확하게 식별 할 수 있습니다. 그러나 나는 그 디자인을 제안하지 않을 것이다. 그것은 불필요하게 복잡합니다. –