2010-12-11 2 views
-2

사용자가 자신의 양식을 만들 수있는 응용 프로그램을 만들고 싶습니다.
사용자는 양식에 데이터를 입력하고 데이터를 쿼리 할 수도 있습니다. 양식은 작성되고 사용 된 후에 편집 할 수 있습니다 (필드를 추가/제거 할 수 있음). 양식은 작은 텍스트 상자, 큰 텍스트 상자, 단일 목록, 확인란 또는 드롭 다운 메뉴를 가질 수 있습니다.이 두 테이블을 디자인하는 방법은 무엇입니까?

저는 이런 종류의 데이터베이스를 구축하는 데있어 어떤 접근 방식이 더 좋은지에 관해서 질문했습니다. 과 똑같은 대답은 없습니다. 이 응용 프로그램에서는 열 기반 디자인 (및 각 필드를 열로 표현)은 사용자가 많은 필드를 추가 할 수 있고 좋은 아이디어가 아니기 때문에 좋은 아이디어가 아니라는 것을 읽었습니다. 테이블 내의 렬수. 그러나 사용자가 추가 할 필드의 수를 미리 알 수는 없습니다. (무슨 뜻인지 모르겠다. 예제를 통해 더 설명하면 많은 도움이된다.)

필드를 유형별로 그룹화하는 것이 좋습니다. (유형 1 : 텍스트 상자, 유형 2 : 드롭 다운 목록, 유형 3 : 단일 목록 ... 등). 내 테이블을 디자인하여 스키마를 변경하지 않고도 언제든지 새로운 유형을 추가하고 응용 프로그램을 업그레이드 할 수 있습니다. 그래서 2 개의 테이블, 필드에 관한 메타 데이터를 담을 하나의 테이블, 즉 그 타입, 이름, 그 위치가 형태 일 수도 있고 필드의 실제 값을 저장하는 또 다른 테이블을 가질 수도 있습니다. 나는이 테이블에 정확히 무엇이 있어야하는지, 올바르게 디자인 할 수있는 방법을 알 수 없습니다. 귀하의 도움은 높이 평가됩니다.

+0

평화로운, 앱의 의도는 무엇입니까? 제가 올바르게 이해한다면, 어떤 사용자가 자신의 양식을 만들 수 있기를 바랍니다. 아마 다른 사람들이 정보를 입력하는 데 사용할 수 있을까요? 이것을 사람들이 다른 사람들을 대상으로 설문 조사를 할 수있는 일종의 'SurveyMonkey'라고 생각하는 것이 정확합니까? – sscirrus

+1

질문의 마지막 부분이 귀하의 질문에 대한 답변입니다. 한 테이블은 양식 필드를 설명하고 다른 테이블은 응답 값을 보유합니다. 이러한 서로 다른 메타 데이터 조각 (유형, 이름, 위치)은 메타 데이터 테이블의 열입니다. –

+0

예 알아요! 하지만 나는이 두 테이블에 정확히 무엇을 넣을 지 모릅니다. 그래서 나중에 다른 타입을 추가하고 싶다면 ... 스키마를 변경해야합니다. 처음에는 텍스트 상자와 단일 목록 만있었습니다. .i 사용자가 드롭 다운 메뉴를 사용할 수있게하기로 결정했습니다. 스키마를 변경하지 않고 새로운 유형을 추가 할 때 융통성을 부여하려면이 두 테이블을 어떻게 사용해야합니까? – PeacefulSoul

답변

0
**Form**  A Form Template 
---- 
formID (PK) 
authorID 
Name 



**FormField** = 1 row for each new question on the form 
---------- 
FormFieldID (PK) 
FormID (FK) 
FieldID (FK) 
SortOrder INT 


**FormFieldOptions**  - if the form field is a selectbox this will store the options availble to pick from 
--------------- 
FormFieldID (fk) 
Name 
SortOrder INT 


**Field**   -- The will be Text Short, Text Long, Checkbox, Radiobutton, Selectbox etc 
------ 
FieldID (PK) 
Name  
TYPE  

이는 양식을 만드는 데 사용됩니다. 사용자 응답/응답 저장을 위해 나는 독자를위한 강요로 떠날 것입니다.)

관련 문제