2010-11-21 4 views
0

소셜 네트워킹에서 객체를 매핑하는 데 어려움을 겪고 있습니다. 개체 목록을 매핑하고 122 개의 주요 개체가 있습니다. 제가 지금 지키고있는 시스템 객체의리스트가 있습니다. 개체는 사진, 비디오, 사진 태그, 비디오 태그, 메일 첨부 파일, 메일 등입니다.소셜 네트워크의 객체 테이블 스키마

각 개체는 만든 날짜, 소유자 ID, 개인 정보 수준, 검색 수준 등과 같은 세부 정보가 포함 된 메타 데이터가 있습니다. 텍스트 항목에는 단어 수, 범주, 다른 사람의 의견 등이 있습니다.

사람들은 각 개체에 자체 테이블을 제공합니다. 그래서 사진에는 자체 테이블이 있고 비디오에는 자체 테이블이 있습니다.하지만 이것은 내 물건에 대해 122 개의 다른 테이블을 가질 것임을 의미합니다. 만약 당신이 소셜 네트워크에서 사람들이 항상 물건들과 상호 작용하고 테이블이 아주 길게 자랄 것이라는 것을 알고있는 것처럼 나는 그것들을 모두 1 개의 테이블에 결합하면 테이블 스캔이 문제가 될 것입니다.

개체 세부 정보를 2 가지 범주로 나누었습니다. 사진과 같은 개체의 필드에는 설명, 크기, 경로 등의 열이 있습니다. 그런 다음 위에서 언급 한 모든 개체 (불법 복제 수준, 검색 수준 등)에 대한 공통 필드 목록이 있습니다. 이 열 중 일부는 사용자가 필요로하는 개인 정보 보호와 같은 사용자 지향적 인 것입니다. 일부는 요일, 월 일, 일년 중 등의 시스템 백엔드보고 용도로만 사용됩니다.

이렇게 모델링하면 가장 좋은 방법이 될 것입니다. 객체 유형에
개체 세부 고유 한 시스템보고

객체 정보/모든 객체에 의해 hared
개체 세부 날짜를 만들 좋아 분석, 개인 정보 보호 등 세 가지 레이어가 정리해.

물론 개체를 가로 질러 보고서를 가져와야하는 경우 좀 더 복잡한 쿼리를 사용하면 더 많은 테이블에서 esp를 얻을 수 있습니다. 상단에는 객체의 부모와 자식 목록이있는 객체 룩업 테이블이 있습니다. 그래서 다른 모든 객체 테이블이 흘러 나옵니다. 이유는 뉴스 피드, 알림 등의 기본 텍스트 목록을 유지해야하므로 개체 룩업 테이블 자체에있는 모든 것들을 매핑 할 계획입니다.

+0

"모두 1 개의 테이블에 결합하면 ..."- 그렇게하지 마십시오! –

+0

그러면 사용자 개체에만 122 개의 테이블이 필요합니까? – daniel

답변

1

다니엘,이 프로젝트에서 행운을 빈다.

데이터베이스 부분에 대해서는 122 개의 테이블이 필요하지 않으며 전체 프로젝트를위한 하나의 테이블로 끝나지 않을 것입니다. 개체를 모두 한 테이블에 저장할 수 있습니다. 이 테이블은 모든 행을 고유하게하는 식별 값, Hibernate가 선호하는 버전 번호, 마지막으로 업데이트 된 값, 플래그 (예 : 비활성, 관리자 만 등)로 사용될 8 비트 열, 객체 유형 번호 단일 유형의 오브젝트와 XML 데이터의 컬럼을 쉽게 얻을 수 있습니다. XML은 객체의 정의를 보유합니다. SQL Server는 SQL2008의 XML과 잘 작동하며 XML 열의 인덱스도 활용할 수 있습니다. 사용자, 멤버십, 주문, 청구서 발송 (결제를 계획 중) 및보고를 지원하기 위해 여러 가지 테이블이 필요합니다.

관련 문제