문제

나는 친구를위한 프로젝트를 진행하고 있으며 어려운 결정을 내 렸습니다. 이 프로젝트는 에세이로 구성되며, 각각은 도전 할 수 있으며 댓글을 달 수 있습니다. 문제는 이것입니다. 한 사람만이 에세이에 도전 할 수 있고 다른 모든 사람들이 잠겨 있고 언급 할 수 있습니다.

반박은 두 개의 응답 깊이 일 수 있으며, 첫 번째는 2,000 단어와 두 번째 단어의 경우 500 단어 일 수 있습니다. 이 시점에서 시청자가 주제가 소진되지 않았다고 생각되면 나머지 토론은 의견에서 발생합니다 (반박과 달리 NCHAR의 고정 된 N 숯)에서 발생합니다.

그래서 처음에는 반박과 의견이 구조적으로 동일한 것으로 결정했으며, 주석 테이블 내에 부울 필드를 추가하여 주석이 _rebuttal인지 표시 할 것입니다. 그러나 나는 그 방향에 대해 조금 확신하지 못하고 있습니다.

당신은 무엇을 제안 할 것인가? 각 에세이는 두 사람 사이에만 토론 할 수 있으며 둘 다 2 번만 말할 수 있습니다. 주석과 매우 유사하지만 별도.

도움이 되었습니까?

해결책

그래서 나는 아마도 '대화'에 대한 테이블, 에세이 포스터의 userID 필드, 단일 응답자 (처음에는 null) 및 제목이나 초록이있는 테이블을 가지고있을 것입니다. 다른 테이블에는 에세이 또는 Rebutter 's UserID, 대화, 게시물의 본문 및 주문을 순서대로 배치 할 수있는'에세이 '가 포함됩니다. 마지막으로, 댓글 포스터 userIds, essayid는 그들을 에세이 게시물에 연결하고, 주석을 링크하는 것, 스레드 모드 (적절한 경우) 및 댓글 본문에 댓글을 달아야합니다.

다른 팁

글쎄, 시스템에 대해 더 많이 알지 못하고 말하기 어렵습니다. 그러나 당신이 쓴 내용에서, 그렇습니다. 반박과 의견은 비슷하며 단일 테이블에 넣어야합니다.

나의 좌우명은 항상 : 의심스러운 경우 가장 간단한 방법을 사용하십시오. 여기는 분명히 단일 테이블입니다.

나중에 별도의 테이블이 더 유용하다는 것이 밝혀지면 언제든지 리팩터를 리팩터 할 수 있습니다.

의견과 반박이 최대 길이가 다르고 에세이 당 얼마나 가질 수 있는지에 대한 제한이 다르면 나에게 매우 다른 것 같습니다. 제한이 다른 엔터티에 대해 두 개의 테이블을 만들고 다른 열과 참조 제약 조건을 설정하면 스키마가 더 명확 해집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top