0

당신에게 주어진 임의의 관련 데이터를 좀 더 간결한 범주로 퍼널해야한다고 가정 해 봅시다.관련 데이터를 매핑하고 정규화하는 몇 가지 방법은 무엇입니까?

예 - 다음 데이터가 제공됩니다. 참고 - 기타 관련, 원주 데이터의 개수가있을 수 있습니다 :

Customer  Product    Category 
========== ========= ================================= 
Customer A Product A     Cat 1 
CustomerA Product B    Category 1 
    Cust-A  Product C Totally Lame & Unrelated Grouping 

작업 - 통합하고 깨끗하고 미리 정의 된 그룹으로 위의 정상화 :

CustomerA 
    Category1 
    ProductA 
    ProductB 
    ProductC 

제발 돈 ' 완성 된 데이터가 어떻게 유지 될지 걱정하지 마십시오. 그룹화 규칙을 유지하고 관리하는 방법에 중점을 둡니다.

한 가지 가정 : 데이터베이스를 사용하여 그룹화 규칙을 유지할 수 없습니다. 따라서 우리가 "정규화"라고 말하면 관계형 데이터베이스 정규화 규칙에 관해 말하지 않습니다. 그러나 오히려 우리는 무작위 데이터를 일관된 상태로 만들기 위해 데이터 입력에서 불일치를 제거하려고합니다 (위에서 볼 수 있듯이).

그럼 사용 가능한 옵션은 무엇입니까? 기술 무신론자 :

XML?

구성 파일?

설정 파일 (컴파일 여부)?

Ini 파일?

코드?

목록 전문가 각 답변에 대한 & 단점. 그리고 이것이 실제로 excersize이지만, 현실 세계의 문제입니다. 따라서 귀하의 고객/고용주가 귀하에게이 일을 맡겼다 고 가정하십시오.

+0

djna의 의견을 통해 좀 더 명확하게 설명해야합니다 : "데이터를 미리 정상화하고, 미리 데이터를 정규화해야한다는 것을 알고 있습니다. "... 그 의미는 무엇을 의미합니까? 형식은 무엇입니까? 아니면 모든 값을 이미 알고 있으며 입력 값을 올바른 값과 비교해야합니까? 두 번째 코드 블록?은 고객 및 Catego에 대해 1-n 관계가 있음을 의미합니다. 카테고리, 제품은 물론이고? 우리가 그걸 알아 내야한다고? – back2dos

+0

XML & c. 간단한 데이터 저장소로 볼 수 있습니다. 많은 플랫폼에 XML을 처리 할 수있는 라이브러리가 있기 때문에 이러한 저장소 (저장소와 함께 사용)는 데이터베이스를 구성합니다. 그룹화 규칙이 데이터베이스에 저장되지 않는다는 요구 사항의 목적은 무엇입니까? 단순히 RDBMS를 배제하려는 의도입니까? 룰 저장 장치가 쓰기 전용이라는 귀하의 의도입니까? 다른 것? – outis

답변

0

데이터 정리 운동처럼 보이지만 완벽은 거의 불가능합니다. 발행 호 :

1). 카테고리를 앞쪽으로 지정할 수 있습니까? 아니면 데이터에서 추론해야합니까?

2). 동등성을 수용하기 위해 우리는 어떤 규칙을 사용할 수 있습니까?

"Cat 1"은 "카테고리 1"과 동일합니까? 및 "카테고리 1"?

"고양이 1" "Cat 1"이라고? "Cat 1?"은 어때? ? 및 "Cat 12"?

챌린지에서 좋은 규칙 집합을 얻으십시오.

2). 어떻게 그 규칙들을 포착하겠습니까? 코드 또는 구성? 설정이라면 어떻게 표현 하시겠습니까? 새롭게 specilaised 된 프로그래밍 언어를 작성하게 될까요?

+0

1) & 2) "사전 정의 된"그룹으로 본문을 참조하십시오. 사전에 데이터를 표준화 할 대상을 알게되고 사전에 표준화해야 할 데이터를 파악하게됩니다. 3) 사실 원래 질문의 일부입니다. 하나는 config를 사용해야합니까? 찬부 양론? – Boydski

0

이것은 데이터 정리 운동처럼 보이지만 완벽은 거의 불가능합니다. 발행 호 :

1). 카테고리를 앞쪽으로 지정할 수 있습니까? 아니면 데이터에서 추론해야합니까?

2). 동등성을 수용하기 위해 우리는 어떤 규칙을 사용할 수 있습니까?

"Cat 1"은 "카테고리 1"과 동일합니까? 및 "카테고리 1"?

"고양이 1" "Cat 1"이라고? "Cat 1?"은 어때? ? 및 "Cat 12"?

챌린지에서 좋은 규칙 집합을 얻으십시오.

3). 어떻게 그 규칙들을 포착하겠습니까? 코드 또는 구성? 설정이라면 어떻게 표현 하시겠습니까? 새롭게 specilaised 된 프로그래밍 언어를 작성하게 될까요?

-1
  1. 각 값에 대한 사전 매핑. 'Cat1'=> 'Category1', 'Category 2'=> 'Category2'. 이것은 저장하기 쉽고 의도하지 않은 결과가 없습니다. 단점은 모든 매핑을 직접 작성하는 것이 실제 작업이라는 것입니다.
  2. 일련의 정규 표현식입니다. 그렇게하면 비교적 적은 작업으로 거의 모든 규칙을 포착 할 수 있습니다. 단점은 정규 표현식 비교적 쉽게 '불발', 및 값 이상의 '규칙'일치하는 경우.을 유지하는 방법에 관해서는

? 내가 생각할 수 없다 즉, 평가 문제의 순서 (즉, 좀 더 흥미롭지 않은 질문입니다. 당신이 선호하는 프로그래밍 언어로 가장 쉬운 것을 사용하십시오.

관련 문제