2010-11-18 8 views
0

의견이라는 표가 있습니다. 각 코멘트마다 나는이 코멘트를 가지고있다.asp.net mvc를 사용하여 쉼표로 표의 열에 int 값을 저장하는 방법

내 사용자 화면에 각 사용자에게 두 개 이상의 댓글을 추가 할 수 있습니다. 댓글 ID는이 용도로 1,2,3, ... 등으로 저장해야합니다. 즉, 내가 추가 한 것을 의미합니다. 1 2 3 개의 댓글 사용자에 대한 ID ...

쉼표로 구분 된 값을 테이블 열에 저장하는 방법은 무엇입니까?

감사합니다.

+1

이렇게하면 확장 할 수 있고 장거리 용으로 사용하는 것이 좋습니다. 주석을 사용자에게 매핑 할 다른 테이블을 만듭니다. 정규화는 처음에는 더 많은 일을했지만 결국에는 더 적은 작업입니다. – clifgriffin

+0

쉼표로 구분 된 목록을 고려할 때 언제든지 다른 관련 테이블이 필요합니다. 데이터는 쉼표로 구분 된 목록으로 저장하면 안됩니다. – HLGEM

답변

6

하지 마십시오. UserID 및 CommentID에 대한 열이있는 조인 테이블을 사용하여 사용자와 주석을 연결하십시오. 그런 다음 User, UserCommentsComments 테이블간에 3 자 조인을 사용하여 사용자에 대한 설명 집합을 가져올 수 있습니다.

select Comments.* 
from Users inner join UserComments on Users.UserID == UserComments.UserID 
      inner join Comments on UserComments.CommentID == Comments.CommentID 
where Users.UserID == @userid 

여기서 @userid는 해당 사용자의 ID입니다.

LINQ를 사용하면 적절한 엔터티 집합을 참조하기 만하면됩니다. SelectMany을 사용하면됩니다.

var comments = context.Users 
         .Where(u => u.UserID == userid) 
         .SelectMany(u => u.UserComments 
             .SelectMany(uc => uc.Comments)); 
관련 문제