2016-08-16 6 views
-2

데이터베이스가 있으며 아래 이미지가 있습니다. 각 어린이마다 별도의 책을 추가하는 효율적인 방법이 있어야한다고 생각합니다. 예를 들어 ... 데이터베이스에 50 명의 클럽 회원이있을 수 있습니다. 각 클럽은 자신의 책에 있으며 간단하게하기 위해 각 책에는 클럽 단원이 완성해야하는 10 개의 섹션이 있습니다. 나는 10 개의 섹션을 가진 각 어린이를위한 테이블을 만들 생각 이었지만, 그것은 내 데이터베이스에 50 개 이상의 테이블로 끝날 것입니다. 나는 또한 book이라는 테이블을 만들고 그 테이블에 10 개의 섹션이 포함되도록 생각했습니다. 그러나 그 문제는 각 어린이가 8 개의 다른 책 중 하나에있을 수 있다는 것입니다. 그래서 book이라는 테이블 하나가 작동하지 않습니다.내 데이터베이스를 설정하는 가장 좋은 방법/적절한 방법은 무엇입니까

누구든지 데이터베이스에서이를 설정하는 방법에 대한 좋은 제안이 있습니까? 나의 궁극적 인 목표는 각 어린이가 이용할 수있는 8 권의 책 중 하나에 링크되도록하는 것입니다. 그런 다음 데이터베이스는 특정 책에 대해 각 어린이가 속한 섹션을 추적합니다. 그래서 ... 오늘 클럽 A는 1 권에서 1 절과 2 절을 마칠 수 있지만 클럽 B는 2 권에서만 1 절을 끝낼 수 있습니다. 나는이 정보를 데이터베이스에서 가져 와서 각 클럽이 자신의 책에 어디에 있는지보고 싶습니다. ..하지만 ... 먼저 데이터베이스를 올바르게 설정해야합니다.

각 책마다 8 개의 별도 테이블을 만들고 테이블 데이터를 섹션 1 ... 섹션 2 ...이어야합니까? 또는 하나의 테이블을 만들고 8 권의 책을 나열한 다음 섹션 정보가있는 다른 테이블에 링크해야합니까? 아니면 더 좋은 방법이 있습니까? 어떤 도움 ![mydatabase

+0

이 주제에 대해 [기사 모음] (http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561)을 읽는 것이 가장 좋습니다 , 다른 사람들이 귀하의 사이트에 가장 적합하다고 생각하는 것에 대한 답을 얻는 것보다는 프로세스와 각각의 용도를 알아야합니다. 다른 테이블 구조와 관계에 대한 연구를하고 어떤 이름이 유용한 구조로 두드러 졌는지 확인한 다음 그 이름을 조사하여 구현하고 유지하는 방법에 대한 지침을 얻으십시오. – Martin

+0

Clubber : [종종 나이트 클럽을 방문하는] 사람 (http : // www thefreedictionary.com/clubber). 나이트 클럽. 'Bangin''. 말 그대로. – Martin

답변

1

책을위한 테이블과 섹션을위한 테이블이 필요합니다. 섹션에는 book_id가 포함되어 있으므로 책의 일부분을 알 수 있습니다. 그런 다음 섹션과 섹션을 연결하여 섹션을 표시합니다. 도서에 대한 질의를 통해 어떤 도서인지 알 수 있습니다.

자녀가 동시에 여러 권의 책을 읽을 수있는 경우, 논리적으로 자식 ID와 섹션 ID가 포함 된 중간 테이블이 필요하므로 여러 책을 동일하게 연결할 수 있습니다 어린이.

+0

이것은 정확히 내가 묻고있는 것입니다! 고맙습니다! 이 어리석은 질문을하기 전에 일주일 동안 온라인으로 많은 포럼과 이미지를 검색했습니다. 나는 아이들을 책에 연결하는 아이디어에 너무 얽매여 있었지만 섹션에 연결하는 것은 완벽하게 작동합니다! 내가 겪었던 다른 문제도 해결하고 있습니다! 다시 감사합니다! –

+0

문제 없습니다. 관계형 데이터베이스의 "정규화"원칙에 기반한 꽤 표준적인 디자인입니다. 미래에 이런 종류의 일에 매달려 있다면 공부할 좋은 주제 일 것입니다 :-) – ADyson

0

당신은 자녀와 부모 사이의 N-N 관계로 끝날 그래서 당신은, 각 행의 테이블 자식 테이블의 부모로부터 중간 테이블 id_child있다 child_parent 및 id_parent을 추가 할 수 있습니다에 대한

감사합니다.

+0

자녀들은 종종 여러 개의 부모 (!)를 가지고 있지만, 이것은 그 자체로 유용한 제안이지만, OP는 어떤 책을 읽었는지, 그리고 그들이 무엇을하고 있었는지를 나타내는 방법에 대해 질문하고있었습니다. – ADyson

관련 문제