2012-05-25 4 views
0

첫 번째 열에 제목 또는 이름을 저장하고 다음 열에 사람 또는 개체를 연결할 수있는 테이블을 만들고 싶습니다. 문제는 동일한 제목이나 이름과 연결된 사람이 여러 명있을 수 있다는 것입니다. 첫 번째 열이 내 기본 키인 경우 각 행마다 중복 키를 사용할 수 없습니다.다중 값 속성이있는 SQLite 테이블

Name1 | Jim 
     | John 
     | Jill 

Name2 | Mike 
     | Mary 

Name3 | Jeff 

은 중간 테이블을 함께 할이 필요합니까, 실제로 (sqlite가에)을 코딩하는 방법 그렇다면, 나는에 퍼지입니다. 메인 테이블의 적절한 속성을 참조하는 외래 키를 사용하여 생성합니까? 어떤 도움을 주시면 감사하겠습니다.

답변

1

예, SQLite (또는 임의의 관계형 데이터베이스)에서는 별도의 테이블을 만들어 이것을 모델링합니다. 관계형 모델의 두 가지 정보를 하나의 열에 저장하는 것은 대단한 위법입니다.

구체적인 내용을 포함하고 있지 않기 때문에 질문에보다 정확한 대답을하기는 어렵지만 관심있는 "사물"을 저장하는 테이블 하나와 정보를 저장하는 하나의 테이블 사람 (사람 당 한 줄), 세 번째 "연결"표를 사용하여 사람들을 "사물"과 연결시킵니다.

이 세 번째 테이블에는 "항목"테이블의 기본 키를 구성하는 열과 사람 테이블의 기본 키를 구성하는 열만 포함됩니다. 이 테이블의 기본 키는 모든 열 (아마도 "사물"과 사람들이 각각 소스 테이블의 단일 열로 식별되는 경우 두 열)로 구성되며 두 개의 외래 키, 즉 "사물"과 "사물" 사람들에게.

사람을 사물과 연관 시키려면 하나의 행이 추가되지만 추가 행을 추가하여 지정된 사람과 더 많은 사람을 연관시키고 각 사람과 더 많은 것을 연관시킬 수 있습니다.

+0

좋아, 나는 옳은 길을 가고 있었다. 문제의 "애매한 정체성"에 대해 유감스럽게 생각하지만, 단지 프로젝트가 함께 진행되는 것이므로 실제 지침은 없습니다. 내가 제안하는 것을 코드화하는 방법을 알기 때문에 나 한테 알려줄거야. – V1rtua1An0ma1y

0

또 다른 옵션은 단일 필드에서 여러 값을 지원하도록 특별히 설계된 DBMS를 사용하는 것입니다. 적어도 하나의 오픈 소스 풍미를 포함하는 것을 선택할 수있는 몇 가지가 있습니다. d3, 로켓 소프트웨어 (U2 DBMS), Ladybridge (open qm) 및 Google에서 더 많은 것을 위해 다중 값 DBMS를 검색하십시오.