회사의 직원 관리 시스템.
이 프로젝트는 응용 프로그램 개발을 위해 ASP.NET을 사용하여 개발되었으며 SQL Server는 스토리지 데이터베이스로서 개발되었습니다. 직원 등록 (개인 +화물)이 CRUD 표준의 4 가지 조치를 취할 수있는 곳에서 이루어졌습니다. 읽고, 작성, 편집 및 삭제합니다. 또한, 데이터베이스가 사람과 사무실과 다시 관계를 맺고 테스트 설명에 지시 된 person_salary의 표를 채우는 급여 재 계산 옵션도 구현되었습니다.
공무원/ 백업/에는 사용 된 모든 절차와 이미 입력 된 데이터와 함께 사용한 SQL Server 백업 파일이 있습니다. 따라서 은행 복원 만하면됩니다.
참고 : 복원을 수행 한 후 직원 File.aspx.cs의 직원 클래스에있는 연결 문자열을 변경해야합니다. 컴퓨터의 연결 문자열로 변경.
데이터베이스를 구성한 후 선택한 일부 코드 편집기 (Visual Studio)에 대한 솔루션을 열고 응용 프로그램을 실행하십시오.
응용 프로그램에 사용 된 절차를보다 쉽게 볼 수 있도록 생성 파일을 직원/SQLS에 넣습니다.
개발 중에 나는 제안 된 건축에 대해 이상한 것들을 발견했습니다. 주로 데이터베이스와 관련하여.
테스트 설명에서 PESSOA_SALARIO라는 테이블을 만들어 개인 테이블을 위치와 연결할 수 있습니다. 그러나이 테이블의 존재는 필요하지 않습니다. 중간 테이블을 생성해야 할 필요성은 분석 된 두 테이블 사이에 많은 사람들이 많은 사람들과 관계가있을 때만 필요합니다. 사람과 사무실 사이의 경우에는 그렇지 않습니다. 한 사람이 한 번에 만 위치에있을 수 있으므로 직접 Position_id라는 필드가 있습니다. 그리고 이것으로부터, 포지션 테이블의 독특한 방법은 이미 존재하며, 결과적으로이를 위해 테이블을 만들 필요없이 해당 사람의 위치와 급여에 액세스 할 수 있습니다.
시험에서 설명하는 방식은 은행에 중복 문제가 있습니다. 어느 시점에서 이러한 데이터에서 불일치를 생성 할 수 있으므로 건축 적으로 잘못된 것 외에도, 급여 재 계산 버튼의 생성 인 응용 프로그램에서 이것의 "수정"도 필요했습니다. 예를 들어, 향후 인턴 급여의 가치가 변경되면, 위치 테이블은 가치가 업데이트되지만 Sanal 판매 테이블은 여전히 이전 값 (데이터 불일치 문제)을 가지며 직원 화면에서 수동으로 이동하여 급여 재 계산 조치를 트리거해야합니다. 사람의 테이블이 없으면이 데이터 만있는 것 외에도 불일치를 방지하기 때문에 상담이 가치를 올바르게 받아 들일 것입니다. 급여 금액을 수정하기 전에 그리고 그 이후.
이에 대한 증거는 두 아키텍처가 생성하는 상담을 분석하는 것입니다.
이것은 아키텍처 제안서에 의해 목록에 사용 된 사람,화물 및 person_salary의 모든 데이터를 반환하기위한 상담입니다.
SELECT p . ID , p . Nome as Pessoa, Cidade, Email, CEP, Endereco, Pais, Usuario, Telefone, Data_Nascimento, c . Nome as Cargo, ps . Salario FROM Pessoa as p
INNER JOIN Pessoa_Salario as ps on p . ID = ps . Pessoa_ID
INNER JOIN Cargo as c on p . Cargo_ID = c . ID그리고 이것은 위의 상담과 동일한 기능을 가지고 있지만 사람과 사무실 만 포함되며 더 간단하고 최적화 된 방식으로 동일한 데이터를 정확히 반환합니다.
SELECT p . ID , p . Nome as Pessoa, Cidade, Email, CEP, Endereco, Pais, Usuario, Telefone, Data_Nascimento, c . Nome as Cargo, c . Salario FROM Pessoa as p
INNER JOIN Cargo as c on p . Cargo_ID = c . ID참고 : 내 솔루션 제안은 제안 된 아키텍처를 사용하여 개발되었습니다. 이 의견은 건축에 의해 가장 흥미롭고 최적화 된 방식을 보여주는 것입니다.