2010-08-19 4 views
0

웹 사이트에서 양식 템플릿 시스템과 비슷한 것을 만들려고합니다.템플릿 디자인/아키텍처

예를 들어 사용자가 양식 템플릿을 만들 수있게하려는 경우 (Wufoo와 유사하게 입력 횟수를 정의 할 수 있음). 그런 다음 생성 된 템플릿에서이 템플릿을 사용하여 채우고 여러 가지 양식 인스턴스를 만들 수 있습니다 (각 사용자 정의 템플릿에 대해 가능할 수 있음). 또한 생성 된 템플릿 및 인스턴스의 수에는 제한이 없습니다.

순수하게 서버/지속성 관점에서, 이와 같은 시스템을 만드는 가장 좋은 방법은 무엇입니까? 생성 된 각 템플릿에 대해 새 데이터베이스 테이블을 만든 다음 폼 인스턴스를 레코드로 테이블에 삽입해야합니까? 이 스케일은 얼마나 잘됩니까?

답변

0

이 주제는 매우 광범위합니다. 확장성에 관해서 Wufoo (및 다른 양식 작성 웹 사이트)는 현재 작동합니다. 따라서 간단한 대답은 이미 완료되었으므로 확장 성이 문제가되지 않아야한다는 것입니다. 그러나 여러 테이블을 무작위로 생성하면 제어가 매우 빠르게 벗어날 수 있습니다.

이 문제가 발생하지 않은 경우 먼저 기본 키에 대한 단일 테이블과 UUID를 사용하여 시스템을 구축하십시오. 이렇게하면 나중에 이동할 수 있습니다. 그런 다음 테이블 크기가 문제가되면 어쨌든 적합하다고 생각되는 테이블을 분리 할 수 ​​있습니다. 예를 들어, a_forms 테이블에있는 모든 customes whos 성이 A로 시작하도록 할 수 있습니다.

테이블의 구조에 관해서는, 당신은 하나의 것으로 이것을 만들 것입니다. 하나의 형식은 많은 요소를 가질 수 있습니다. 요소는 모두 미리 정의 할 수 있습니다 (예 : 텍스트, 텍스트 영역, 라디오 버튼, 확인란, 제출 버튼 등). 누군가 양식을 작성할 때 양식 요소 serialize()을 테이블에 저장할 수 있습니다. 양식을 렌더링해야 할 때 unserialize(), 요소를 구문 분석하고 양식을 작성하십시오.

관련 문제