2014-01-20 1 views
0

나는이 테이블 주식 매니저를 쓰고 있어요 테이블을 구성하는 가장 좋은 방법을 알고 싶습니다.이 상황에 가장 적합한 데이터베이스 구조는 무엇입니까?</p> <ul> <li>수확</li> <li>판매 및</li> <li>등</li> </ul> <p>I를</li> <li>고객 및 생산자</li> <li>sale_item를 구입하고 purchase_item :

가장 큰 질문은 salespurchase입니다. 왜냐하면 그들은 거의 동일한 필드를 가지고 있지만, customerproducer은 완전히 다릅니다.

두 가지 옵션을 생각했습니다. 첫 번째는 sale의 중복 필드이고, purchase, sale_itempurchase_item입니다. 둘째, 유형 (sale 또는 purchase)을 저장하는 order 한 열이라는 테이블을 생성 sale_itempurchase_item와 동일한 기능을 수행하고 person 상속 다른 customer라는 테이블 producerperson이라는 테이블을 생성한다.

가장 좋은 접근 방법은 무엇입니까?

저는 PostgreSQL에서 Django를 사용하고 있습니다.

답변

1

판매 및 구매를 별도의 두 테이블 (및 sale_item 및 purchase_item)으로 분리해야합니다. 중복 열 (현재는 중복 됨)이더라도 별도의 개념을 나타냅니다.

향후 이러한 개념 중 하나가 어떤 식 으로든 변경되어 기본 테이블이 이 아니고이 모두 동일한 열을 가질 수 있다고 상상하기 쉽습니다.

별도의 테이블 집합 두 개를 사용하면 쿼리하기가 더 쉽습니다.

+0

거의 모든 팁을 다 써 버렸습니다. 나는 단지 @johnbarr의 팁을 같은 장고 모델에 의해'sale_item'과'purchase_item'을 표현하는 것과 섞어 놓았지만, 데이터베이스에는 두 개의 다른 테이블이 있습니다. –

0

엔티티에 따라 테이블을 정규화하는 것이 올바른 방법입니다.

또한 동일한 목록보기에서 해당 항목을 병합하고 병합 할 가능성이 있다고 생각합니다.

당신이 말하는 엔티티를 보면, sale_item과 purchase_item이 같은 의미로 사용될 가능성이 높기 때문에 동일한 테이블에 넣을 것이라고 생각합니다.