2011-09-02 3 views
1

그래서 저는 구축하고있는 웹 응용 프로그램에서 몇 차례 발생하는 상황이 있습니다. 이 문제를 해결할 더 좋은 방법이 있어야 할 것 같아서 현재의 기술을 자세히 설명하고 경험 많은 개발자가 더 나은 옵션을 제안 할 수 있기를 바랍니다.웹 응용 프로그램에서 "많은 관계"가있는 데이터 업데이트 처리

본질적으로이 문제는 데이터 저장소로 관계형 데이터베이스를 사용하는 앱 (특히 MySQL을 자주 사용)에서 여러 관계로 데이터를 편집하는 것을 중심으로합니다.

그래서 (이 유사한 셋업을 할 수 있지만)의이 데이터베이스 스키마를 가정 해 봅시다 :

사용자가 기술은 사용자

나는 새로운 사용자를 생성에 속하는 많은 스킬을 가지고, 내가 채울 것 기본 정보는 물론 일부 스킬 (또는 전혀 스킬)이 없습니다. 저장을 클릭하면 내 앱에서이 데이터를 가져 와서 새 사용자를 데이터베이스에있는 0, 1 또는 여러 스킬 항목과 함께 저장합니다.

이제이 사용자를 편집하면 양식에 사용자의 기본 정보와 각 스킬의 여러 필드가 표시됩니다. 기술을 제거하거나 새로운 기술을 추가하거나 두 가지를 모두 선택할 수 있습니다.

현재 저는 자바 스크립트를 사용하여 필드를 제거하고 자바 스크립트를 사용하여 새로운 스킬 필드를 추가합니다. "제거"를 클릭 할 때 즉시 데이터베이스에서 스킬을 삭제하지는 않겠지 만 사용자가 양식을 제출하면 필드를 삭제 한 다음 필드를 삭제하십시오.

내 서버 측 코드에서이 사용자의 이전 스킬 항목을 모두 삭제 한 다음 게시 된 모든 스킬 항목을 저장하면됩니다. 다른 옵션은 게시 된 스킬 항목 ID에없는 스킬 항목 만 삭제 한 다음 게시 된 각 항목의 기록을 업데이트하는 것입니다.

이 문제를 해결하는 좋은 방법 인 것 같습니까? 이것을 관리하는 더 좋은 방법이 있습니까? 내가 지금하고있는 것과 프로세스가 크게 다르더라도 제안을 할 수는 있습니다.

자세한 내용은 PHP 및 MySQL 응용 프로그램에서이 작업을 수행하고 있습니다.

감사합니다.

답변

0

데이터를 가져올 때마다 모든 기술 필드를 다시 작성하는 것이 좋습니다. 모든 프로세스는 1 개의 쿼리로 이동합니다 (쿼리 만 업데이트).

POST가 아닌 스킬을 삭제할 경우 많은 비교 작업을 수행해야합니다.

+0

여기에 무슨 뜻인지 이해가되지 않습니다. 몇 가지 기술을 제거한 다음 몇 가지를 추가하고 몇 가지를 편집하면 생성해야하는 일부 기술 레코드와 삭제해야 할 일부 및 업데이트해야 할 일부가 있습니다. 모든 레코드를 삭제하고 새로운 레코드를 모두 삭제하면 훨씬 쉽게 사용할 수 있습니다. 그러나 대안이 있어야합니다. – Eric

관련 문제