난 큰, 끔찍하게 작성한 PHP 애플 리케이션을 레일에 다시 쓰고 있어요. 우리는 몇 년 동안 프로덕션 환경에서이 앱을 실행 해 왔으며 지금 실제로해야 할 일에 대해 좋은 생각을 가지고 있습니다. 따라서 앱을 지원하기 위해 코드베이스를 깨끗하게 마침내 얻으려고합니다.사용자 별 검색
내가 알아 내려고하는 한 가지는 우리 모델에있는 일부 기능을 처리하는 방법입니다. 이 응용 프로그램은 다중 회사 웹 응용 프로그램이며 응용 프로그램을 사용하는 각 회사 (및 모든 사용자)는 많은 기본 설정과 사용자 지정 조회를가집니다. 기본 설정은 쉽고, 사용자와 회사를위한 기본 설정 모델을 설정하고 키/값 테이블을 필수적으로 만들 계획입니다. 나는 우리 조회 모델을 가지고 조금 더 고심하고있다. 예를 들어, 상태 가져 가라. 일반적인 응용 프로그램에서는 상태 테이블을 가지고 작업을 완료해야합니다. 우리의 경우 상태는 로그인 한 사용자의 회사에 따라 다를 수 있습니다.
현재 앱에서는 구현이 다소 잘못되었다고 생각합니다. 본질적으로 company_id 열이있는 상태 테이블과 모델이 있습니다. company_id = -1로 일련의 기본 상태를 제공합니다. 그런 다음 회사가이를 무시하면 company_id를 사용하여 테이블에 항목을 저장합니다. 앱에서는 기본적으로 company_id를 전달하는 저장 프로 시저를 통해 가져오고 기본 항목 또는 회사 별 항목을 반환합니다.
나는 쉽게 데이터에 액세스하기가 어렵 기 때문에 주로이 팬이 아닙니다. 특히, 기본값 및 회사 별 옵션을 테이블에 포함 시키면 간단한 쿼리를 수행하여 상태 목록을 얻을 수 없다는 것을 의미합니다. 즉, 2 개의 쿼리 (company_id의 경우 결과가없는 경우 -1) 또는 복잡한 질의/프로 시저가 sql의 count 및 if 문 수행. 플러스 측면에서는 다른 객체가 status_id를 참조하고 어떤 상태의 테이블을 얻을 수 있기 때문에 쉽게 관계를 맺을 수 있습니다.
우리는 아마도 12 가지 모델에이 기능을 갖추고 있으므로 모든 모델에서 쉽게 구현할 수있는 좋은 모델을 제시하려고합니다.
누군가 구현할 수있는 더 좋은 방법에 대한 제안 사항이 있습니까?