2009-03-31 3 views
0

내가 사용하는 구현은 테이블의 약 10 열 (CUSTOMFIELD1, CUSTOMFIELD2 등)을 사용합니다. 그리고 그 때마다 나는 더 나은 방법이 있어야한다고 생각합니다.CMS에서 다양한 수의 사용자 정의 필드를 구현하는 좋은 방법은 무엇입니까?

모든 사람이 모두 10을 사용하지 않으며, 일부는 0을 사용하므로이 빈 열이 내게 쳐다 보며 사용을 요청합니다.

  1. 10 개 이상의 사용자 정의 필드 :

    그래서 더 좋은 방법이 있다면 ... 이상적으로, 나는 그것이 허용 거라고 생각합니다. 이론적으로 무한합니다. 실질적으로 15와 같은 무언가.
  2. 각 사용자 정의 필드에는 사용자가 설정 한 이름을 지정할 수 있습니다.
  3. 사용자 정의 필드 유형을 설정할 수 있습니다. 기본 유형 : 문자열 및 숫자.

지금까지, 나는 XML, JSON 또는 YAML과 같은 형식 등 사용자 정의 필드 '설명, 이름, 유형을 포함하는 파일의 경로를 저장합니다 CUSTOM_FIELDS라는 이름의 열을 갖는 생각하고있는 다시 객체로 변환 할 수 있습니다. 그리고 그것은 단지 사용자 정의 필드의 정의입니다.이 사용자 정의 필드를 사용하는 내용을 저장하는 방법에 대한 모든 문제가 있습니다 ...

어쨌든, 지금 내 생각이 바로 여기에 있습니다. 어떤 아이디어?

추신 : 나는 응용 프로그램을 사용자 정의하여 사용자 정의 필드에 두는 것보다 더 이상적이라고 생각하지만, 그 럭셔리는 필요하지 않습니다. & 다른 두 개의 사용자 정의 필드를 정의하는 다른 시간 그냥 작동합니다.

답변

1

별도의 테이블 만들기 - CustomerFields을 열이 :

  • CUSTOMER_ID (INT),
  • 필드 (VARCHAR),
  • 값 (VARCHAR),
  • 데이터 형식 (VARCHAR)

이제 CustomerFields 테이블에서 customer_id = 'CustomerID'를 가진 모든 항목을 찾으면 원하는만큼의 변수를 할당 할 수 있습니다. 유일한 것은 값이 실제 varchar는 아니지만 정수가 될 수 있으며 구문 분석되어야한다는 것입니다. 하지만이 스키마가 얼마나 단순한지를 고려하면 큰 문제는 아니라고 생각합니다.

+0

고마워! 그건 꽤 간단 :) 내가 생각했던 것보다 훨씬 간단 해! –

0

모든 사람이 모두 10을 사용하지 않으며, 일부는 0을 사용하므로이 빈 열이 나에게 다시 쳐다 보며 사용을 요청합니다.

간단한 설명은 데이터베이스를 정규화하거나 비정규 화하지 마십시오. 옆으로 스크롤해야하고 "man this to be big"이라고 생각해야하기 때문에이보기는 데이터베이스 테이블을 임의로 볼 수 있습니다.

+0

:) 감사합니다. 그게 정확히 내가 생각했던거야! 그걸 염두에 두겠다. –