2009-11-25 2 views

답변

2

몇 가지 이유 :

  • 개념적 질문에 대한 답변을 모델링 관점에서 정말 다르지 않다;
  • 검색하기가 더 쉽습니다 (두 개가 아닌 하나의 테이블).
  • 두 테이블에 걸쳐 이러한 시스템을 구현하려고 시도한 적이 있다면 (스레드 및 응답을 시작하는 게시물이 포함 된 포럼을 포함하여)이 시스템을 구현하려고 시도해 본 적이 있다면 SQL이 실제로 매우 어색하다는 것을 빨리 알 수 있습니다.

이 문제를 보는 가장 좋은 방법은 사용 사례를 통해 특정 모델을 실행하는 것입니다.

예 : 사용자가 모든 게시물을 순서 (투표, 날짜 등)로 나열합니다. 두 테이블 사이에서 어떤 종류의 UNION이 발생하게되는데, 이는 실제로 바람직하지 않습니다. 같은 테이블에 저장하면 훨씬 쉽습니다. 단지 질문이나 답변으로 제한하고 싶다면, 같은 테이블은 추가 기준 (예 : 질문에 대한 parentID는 NULL)과 같이 쉽습니다.

1

Cletus가 맞습니다.하지만 답과 질문은 비슷하지만 실제로는 같지 않으므로 DB를 비정규 화하는 것이 좋습니다. 특히 하나의 질문에는 여러 가지 대답이 있지만 각각의 대답은 하나의 질문에만 포함됩니다. 중복 된 반복 데이터를 테이블에 저장하기 시작합니다. 인프라에 따라 속도/개발 이점이있을 수 있지만, DB 관리자에게이 사실을 알리면 심장 마비가 발생할 수 있습니다 .-) 그래서 네가 할 수 있고 개발하기가 약간 쉬워집니다. 그러나 동일한 데이터를 가져 오기 위해 조인과 공용체를 작성하는 것은 그리 어렵지 않습니다.

+0

음 ... 아니요. 질문 -> 답변은 자기 참조적인 일대 다 관계입니다. 이것은 고전적인 E-R 모델링이며 데이터베이스 사용자가 쉽게 이해할 수있는 것입니다. – cletus

+0

@Nick : cletus가 맞습니다. 마지막 장소는 "pig tail"입니다. –

+0

나는이 경우 가장 좋은 해결책이라고 말하는 것에 대해 이해하고 있습니다. 여기에 이유가 있습니다. 자신을 참조 할 필요가있는 동일한 종류의 것을 가지고 있다면 - 그렇습니다.이 접근법이 가장 좋습니다. 예를 들어, 마케팅 회사가 추천 수수료를 지불하기 위해 웹 사이트에 가입 할 사람을 누가 누가 추천했는지 보여줄 필요가있는 계정과 웹 사이트를 갖고 있다고 가정 해 봅시다. 그러면 돼지 꼬리를 사용할 수 있습니다. 그러나 데이터가 설정되는 방식에 따라 답변과 질문은 서로 다른 유형의 객체 일 가능성이 높습니다. 그러나 OS에서 답변과 질문이 동일하게 모델화 된 경우 올바른 접근 방식입니다. – konung

관련 문제