>  기사  >  백엔드 개발  >  테이블을 나눈 후 시간별로 데이터를 정렬할 수 있는 좋은 방법이 있나요?

테이블을 나눈 후 시간별로 데이터를 정렬할 수 있는 좋은 방법이 있나요?

WBOY
WBOY원래의
2016-08-10 09:07:191568검색

세 개의 테이블이 있습니다:

사용자 테이블: user------user_id


기사 테이블: 기사----------------article_id,user_id;


댓글 테이블: Article_comment----comment_id,article_id


user 테이블은 article_comment 테이블과 일대다대다 관계를 갖습니다.

이제 기사_comment는 기사 ID%6: 기사_comment_0/1/2/3/4/5에 따라 6개의 테이블로 나뉩니다.
이제 특정 사용자의 모든 기사에 대한 댓글을 시간에 따라 표시해야 합니다. 댓글, SQL은 어떻게 작성하나요?

답글 내용:

세 개의 테이블이 있습니다:

사용자 테이블: user------user_id


기사 테이블: 기사---article_id,user_id;


댓글 테이블: Article_comment----comment_id,article_id


user 테이블은 article_comment 테이블과 일대다대다 관계를 갖습니다.

이제 기사_comment는 기사 ID%6: 기사_comment_0/1/2/3/4/5에 따라 6개의 테이블로 나뉩니다.
이제 특정 사용자의 모든 기사에 대한 댓글을 시간에 따라 표시해야 합니다. 댓글, SQL은 어떻게 작성하나요?

<code>SELECT * FROM((SELECT * FROM article_comment_0 INNER JOIN article ON article_comment_0.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_1 INNER JOIN article ON article_comment_1.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_2 INNER JOIN article ON article_comment_2.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_3 INNER JOIN article ON article_comment_3.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_4 INNER JOIN article ON article_comment_4.article_id=article.article_id WHERE article.user_id='userid') UNION
(SELECT * FROM article_comment_5 INNER JOIN article ON article_comment_5.article_id=article.article_id WHERE article.user_id='userid')) res
ORDER BY res.comment_createtime DESC
</code>

이렇게 테이블을 설계하면 매번 기사 쿼리를 연결해야 하므로 쿼리에 한 단계가 더 필요하지 않도록 공통 테이블에 중복된 user_id 필드를 추가하는 것이 좋습니다

테이블을 분할할 수 없으면 하지 마세요. 테이블을 분할하면 개발에 많은 문제가 발생합니다. mysql에 대해서는 잘 모르지만 이것저것 검색해봤습니다. :

http://dev.mysql.com/doc/refm...

쿼리 조건에 따라 테이블을 나누어야 하며, 그렇지 않으면 좋은 방법이 없습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.