2009-07-22 2 views
0

많은 데이터베이스 필드를 표시하는 GUI의 경우 GUI 레이블이 하드 코딩되지 않고 동적으로 설정되도록 field : label 맵을 갖는 것이 바람직합니다. 예를 들어GUI 레이블을 데이터베이스 필드에 어떻게 매핑합니까?

  • 높이 : "신장 (cm)"
  • 연령 : "나이 년"
  • bloodAlcPct : "혈액 알코올 %"
  • monthsIncarcerated : "감옥에 달"

이 문자열은 어디에 저장합니까? 데이터베이스 필드에 어떻게 매핑됩니까? 사용자가 이러한 레이블을 자주 변경하도록 요청할 수도 있습니다.

답변

1

테이블의 필드에 대한 정보를 보유하는 메타 테이블을 사용할 수 있습니다. 언제든지 해당 테이블을 더 많이 사용할 수 있습니다.

+1

상당한 양의 추가 쿼리가 필요하지 않습니까? – Glenn

+0

사용 사례에 따라 시작시 단일 쿼리로 클래스/구조체에 lables를로드하고 완료 할 수 있습니다. 일반적으로 레이블은 자주 변경되지 않습니다. 맞습니까? – Mostlyharmless

1

나는 데이터베이스 사람들을 저장하지 것이 아니라 그들에게이 모든 좋은 ORM에서 수행 될 때 데이터베이스 테이블을 나타내는 당신의 OO 모델에 매핑 한 (장고에 kohana-ORM, 액티브 등)을 보면

편집 :

음 .. 그게 당신이 하드 코딩 된 참조에 따라 다릅니다. 하드 코딩 된 코드는 일반적으로 폼이나 출력에서 ​​필드를 사용할 때마다 코드에 포함됩니다. ORM 클래스에서는 한 번만 정의되고 이후에는 다시 사용됩니다. 다른 언어를 사용하려는 경우 _get 메서드를 사용할 수도 있습니다.

일부 장소에서 레이블을 정의해야합니다. 데이터베이스에서 정보를 검색해야하므로 데이터베이스에 저장하면 너무 많은 오버 헤드가 발생합니다. GUI의 종류에 따라 시간이 많이 걸릴 수도 있습니다.

결국에는 코드의 균형, 성능 및 가독성/확장성에 대한 두 가지 사항이 있습니다. 레이블을 사용자가 변경 한 경우를 제외하고 클래스에 캡슐화하면 동적 데이터이므로 데이터베이스에 있어야합니다.

어쨌든, 이것은 종종 특정 상황과 개인 취향의 문제입니다. 그러므로 여기에는 옳거나 그름의 해결책이 없습니다.

+0

라벨을 클래스 파일에 하드 코딩 하시겠습니까? – Glenn

+0

그래서 데이터베이스 테이블을 나타내는 OO 모델 ... 거기에 레이블을 저장하면 여전히 하드 코딩이 될 것입니다 ... 맞습니까? (내가 전에는 모르겠다.) – Mostlyharmless

+0

내가 편집 할 때 말했듯이, 수업 중에 한 번 정의하면 DRY (자기 자신을 반복하지 마라) 그것은 정말로 하드 코드되지 않는다. 주기적으로 (심지어 다중 언어는 _get로 수행 할 수있는) 몇 가지 이유가 필요하다. – txwikinger