2012-01-13 2 views
1

동적 인 점검 목록 세트가 있으며 사용자가이를 선택하면 데이터베이스에 저장해야합니다. 그러나 테이블의 속성은 동적이어야합니다. 따라서 체크리스트 값을 테이블의 열로 사용할 수 없습니다. 체크리스트는 동적이므로. 그래서 성능상의 문제가 없도록 데이터베이스를 설계하는 방법을 알려주십시오. 사용자가 동적 체크리스트 값과 함께 세부 사항을 채우면 모든 세부 사항이 동적을 포함하여 테이블에 저장됩니다. 이 문제와 관련하여 제안 사항을 알려주십시오. Viruzzo가 말한 것처럼동적 값을 사용하여 동적 데이터베이스 설계를하는 방법

+0

"동적"이라면 중요하지 않습니다. 중요한 것은 다음과 같습니다. 어떤 방식 으로든 그 값을 참조 할 수 있습니까? 그들이 있다면 (그리고 그렇지 않다면 나는 아주 이상한 시스템이 될 것입니다) 당신은 단지 연관 테이블을 사용할 수 있습니다. – Viruzzo

+0

좀 더 구체적으로 표현할 수 있습니까? 예를 들어 "동적"테이블과 필드의 예를 제공 할 수 있습니까? –

답변

3

, 당신이해야 할 모든이 같은 관계 테이블을 만들 수 있습니다 :

**Table User** 
int ID 
String name 

**Table CheckBoxOptions** 
int ID 
String description 

**Table User-Checkbox-Relation** 
int UserID 
int CheckboxID 
boolean value 
int position 

그런 다음, 당신이 할 일은 각 옵션에 주어진 관계 테이블에 하나 개의 항목을 추가 할 것입니다 사용자는 자신의 형태로 존재합니다. 읽고있을 때 관계 테이블을 읽고 원하는 사용자 ID가있는 모든 항목을 검색하십시오.

Aaron Digulla가 제안했듯이 예제에서 "int position"과 같은 필드를 사용하여 User-Checkbox-Relation에 옵션의 위치를 ​​저장할 수 있습니다. 이렇게하면 양식이 제시 될 때마다 동일한 순서로 옵션을 표시 할 수 있습니다. :)

+1

'User-Checkbox-Relation' 테이블에'position'을 추가하여 항목을 정렬 할 수 있습니다. –

0

특성을 사용하여 XML을 만들고 데이터베이스에 저장 한 다음 속성을 파싱하거나 배열 형식 필드를 만들고 이름 = 값 쌍을 거기에 저장하십시오.

건배

0

는이 문제를 해결하는 방법에는 여러 가지가 있습니다 : 각 검사 목록이 다른 경우

  1. 당신은, USER_IDPOSITION, TEXT, STATUS을 테이블을 만들 수 있습니다 (즉는 아무 소용이없는 경우 재사용이 없으므로 목록의 항목에 대한 표를 만들 수 있음)

  2. 사용자가 검사 목록에 대해 제한된 옵션 집합 만 선택할 수있는 경우, 자민련은 항상 모든 옵션이 필요하고 텍스트 나 상태에 따라 항목을 검색 할 필요가 없습니다 경우 STATUS

  3. , 당신은 당신의 자신의 데이터 구조를 사용할 수있는 모든 옵션을 테이블을 가지고 USER_ID, POSITION, OPTION_ID있는 테이블을 생성 데이터베이스에 BLOB으로 저장하십시오. 장점 : 구조가 어떻게 작동하고 보이는지 완전히 자유 롭다. 단점 : 새로운 구조로 마이그레이션하는 것이 지옥이 될 것이므로 처음부터 올바르게 사용하는 것이 좋습니다.

관련 문제