데이터 모델로 어려움을 겪고 있습니다. 나는 내가 생각해내는 것에 대해 불안하다. 누군가가 더 나은 접근법을 제안 할 수 있거나 나에게 약간의 참고 사항을 가르쳐 주면 고맙겠습니다.데이터 모델링 문제로 어려움을 겪고 있습니다.
데이터에는 여러 유형의 조직이 있습니다. 나는 3 수준 분류 (클래스, 범주, 유형)을하려고합니다. 나는 '이탈리안 레스토랑'을 경우, 그것은 다음과 같은 분류
을해야합니다 말 식품 서비스> 레스토랑> 그러나, 조직이 여러 그룹에 속할 수이탈리아어. 레스토랑은 중국어와 이탈리아어를 제공 할 수도 있습니다. ,
ORG_CLASS (RowId가, ClassCode : 그래서 2 분류
식품 서비스
> 레스토랑> 이탈리아어음식 서비스> 레스토랑> 중국어
참조 테이블은 다음과 같이 될 것입니다 분류에 맞는 클래스 이름)
1, FOOD, Food Services
ORG_CATEGORY (RowId가, ClassCode, CategoryCode
내가 허용됩니다, 범주)
1, FOOD, REST, Restaurants
ORG_TYPE (RowId가, ClassCode, CategoryCode, TypeCode를, TYPENAME)
100, FOOD, REST, ITAL, Italian
101, FOOD, REST, CHIN, Chinese
102, FOOD, REST, SPAN, Spanish
103, FOOD, REST, MEXI, Mexican
104, FOOD, REST, FREN, French
105, FOOD, REST, MIDL, Middle Eastern
실제 데이터 테이블은 다음과 같이 될 것이다 조직 최대 3 분류. ORG_TYPE에서 각 행을 가리키는 3 개의 GroupId가 있습니다. 그래서 나는이 내 ORGANIZATION_TABLE
ORGANIZATION_TABLE (OrgGroupId1, OrgGroupId2, OrgGroupId3, ORGNAME, OrgAddres)
100,103,NULL,MyRestaurant1, MyAddr1
100,102,NULL,MyRestaurant2, MyAddr2
100,104,105, MyRestaurant3, MyAddr3
데이터, 대화 상자가 사용자가 clssa, 카테고리, 유형을 선택할 수 있도록 할 수 추가하고 해당시 GroupId는 ORG_TYPE 테이블의 rowid로 채울 수 있습니다.
검색하는 동안 세 가지 분류를 모두 선택하면보다 구체적입니다. 예를 들어,
음식 서비스> 레스토랑 경우> 이탈리아어 절은 될 기준의입니다 'where OrgGroupId1 = 100'
단지 2 수준
음식 서비스> 레스토랑
내가해야 할을 선택하는 경우'where OrgGroupId1 in (100,101,102,103,104,105, .....)'
- 그 목록에 백 개가있을 수 있습니다
나는 수업 수준 검색을 허용하지 않을 것입니다. 그것은 클래스와 카테고리를 강제로 선택합니다.
ID는 정수입니다. 성능 문제 및 기타 문제를 확인하려고합니다.
전반적으로 이것이 효과가 있습니까? 아니면 이것을 밖으로내어 처음부터 시작해야합니다.
이 당신의 목적을 위해 잔인한하지만, 수도 계층 적 데이터 관리에 대한 좋은 기사 : 대한 http://dev.mysql.com/tech-resources/articles/hierarchical-data.html – trickwallett
감사합니다 링크. 참으로 좋은 참고 자료입니다. 그것은 분류를위한 또 다른 선택권을 갖게했습니다. 이 기사의이 접근법은보다 유연하며 분류의 수를 제한하지 않습니다. – rpat
@trickwallet :이 주소로 더 이상 기사를 사용할 수 없습니다. 이제 여기에 있습니다 : http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ –