최종완성본은 아래 사진과 같은데
이 전글에서 답변 주신거대로 해보는 것보다 제 생각대로 해보고 고쳐나가는게 좋을거 같다는 생각이 들어서
제가 맞다고 생각하는데로 해보았습니다.
틀린 부분이나 처음부터 다시해야한다면 상세하게 좀 알려주시면 참고하여 다시 제작해보겠습니다.
학비 700만원을 날리고 싶지 않아요 도와주세요 ㅜㅜ
*참고 사항*
a. Based on the expense report, start with the following original table schema:
Expense (StatementNumber, EmployeeID, Name, Title, Email, Department, Manager, StartDateOfTrip, Nbdays, TripPurpose, ExpenseLineNumber, ExpenseDate, Account, Description, Vendor, Category, PaymentMethod, Amount). Consider (StatementNumber, ExpenseLineNumber) as PK. Draw the dependency diagram. Make sure you label the transitive and/or partial dependencies.
Account refers to a general ledger (GL) account created to hold expense information. Every single type of expense has a GL code or account that is composed of department and type of expense. For instance, an employee working in the IT department (has id 10) has to enter the airplane expense (category T with ID 100) in the first line of the expense report, the GL account is then 10100.
Definition: A general ledger is a complete record of financial transactions over the life of a company. The ledger holds account information that is needed to prepare financial statements, and includes accounts for assets, liabilities, owners' equity, revenues and expenses.
1. 전에 말했듯이 EMPLOYEE 와 DETAIL 간의 종속관계가 반대로 되어있습니다.
그리고 DETAIL이라 쓰지말고 좀더 명확한 단어로 테이블명을 정하세요.
2. EXPENSE 테이블과 PAYMENT 테이블이 1:N 관계인지 한번더 확인해보세요.
1:1 관계 ( 제가 보긴 한테이블로 가야하지 않을까 싶네요) 로 보여지며 설사 1:N 관계라 하여도 PK는 유일값을 가져야하는데 CATEGORY_ID 하나만 가지고 PK로 되어있습니다.
그러면 PAYMENT 테이블은 CATEGORY 테이블과 1:1 관계를 뜻합니다. 확인을 잘해보세요.
EMPLOYEE 테이블에 TITLE_NUM도 빼주셔야죠.. 사용자가 하나의 TITLE만 쓰지 않습니다. 여러개 사용할수있지요.
SIGNATURE 테이블은 어디서 쓰이는지 위의 그림(잘안보임)에서 찾기 힘드네요.. 설명좀 부탁드려요.
EXPENSE 테이블은 인조식별자(EXLINE_NUM) 사용하셨는데 ( TITLE_NUM , TITLE_NUM 별 순번으로 가는것이 좋아보입니다 )
EXPENSE 테이블의 TOTAL_PAY 컬럼도 필요없습니다. -> EXPENSE테이블의 AMOUNT를 연산해서 의해서 나와야합니다.(아마 전체 로우의 값)
CATEGORY 테이블에 CATE_TOTAL이 금액이면 의미 없어 보입니다. -> EXPENSE테이블의 AMOUNT를 연산해서 의해서 나와야합니다.
대충본것이니 판단하여서 적용하세요.