2012-04-13 4 views
0

저는 수천 권의 책 (제목, 연도, 작가 등)이있는 db 테이블을 가지고 있습니다. 사용자는 읽은 책을 목록에 추가 할 수 있습니다. DB에없는 도서를 추가 할 수있는 권한을 부여하고 싶을뿐입니다. 해당 사용자 만 사용할 수 있습니다. 새 테이블을 만들거나 "is_custom"및 "user_id"열이있는 메인 테이블에 책을 추가해야합니까? 두 번째 방법은 나를 관리하는 것이 훨씬 쉬워 보입니다. (예를 들어 검색이라는 측면에서 두 테이블에 합류하는 것은 어리석은 것처럼 보입니다.)하지만 두 가지 (내 책과 사용자 책)가 꽤 커질 것이므로 묻습니다.하나 또는 두 개의 db 테이블을 만들어야합니까?

감사합니다.

답변

0

이론적으로 가장 좋은 방법은 하나의 엔티티에 대해 하나의 테이블을 사용하는 것입니다. 따라서 변형 1입니다. '사용자'- 링크 테이블을 통한 또 다른 테이블 (여러 대 다수). 자신의 책은 사전 정의 된 상수 사용자 (더 좋거나 사용자에게 연결되지 않은 사용자)에게 소유됩니다.

OOP 데이터베이스에서 부모 테이블과 두 개의 하위를 사용할 수 있습니다. 그러나 처음에는 귀하의 상황이 그 것을 요구하지 않습니다.

0

먼저 단순성과 유지 관리 용이성을 위해 설계하고 문제가 있음을 알게되면 성능 개선 만 소개합니다.

"꽤 큰"은 다른 사람들에게 다른 것을 의미하지만, 문제를 해결해야한다면 두 테이블에 걸쳐 데이터를 분할하거나 두 번째 테이블에서 데이터를 분할하거나 "booksBooks"테이블보다 "books"테이블을 관리하기위한 다른 솔루션입니다.

관련 문제