2010-05-06 4 views
0

사용자, 게시 및 주석을 플래그 지정하는 "플래그가 지정된"func을 만들고 있습니다.이 3 개의 테이블을 결합하는 방법이 있습니까? (mysql)

"flagged_users", "flagged_postings"및 "flagged_comments"테이블을 현재 사용하고 있습니다.

각 테이블에는 flagged_id, user_id/posting_id/comment_id, reason이 있습니다.

하나의 테이블에 결합하는 방법이 있습니까? 또는 3 테이블이 최고입니까? 당신이 외래 키를 원하는 경우

답변

0

그렇게 같은 플래그 테이블을 만들고 유형을 기준으로 삽입하고 열 변경 될 수 있습니다 :

FlagID - auto inc 
UserID - default NULL 
PostingID - default NULL 
CommentID - default NULL 
Reason - text 

또는 당신은 데이터베이스에 FKS 걱정하지 않는 경우

FlagID - auto inc 
ObjectID - User/Post/Comment ID 
Reason - text 
+0

그러면 신고 된 사용자를 어떻게 모두 선택하겠습니까? 줄을 따라 뭔가를 선택 * FROM은 어디에서 userid! = null로 플래그가 지정 되었습니까? – ggfan

+0

두 번째 옵션에서 유형 열을 잊었습니다. 다른 유형의 객체가 동일한 ID를 공유 할 수있는 경우에만 필요합니다. 덕분에 –

1

잘 다음과 같은 열이 하나 개의 테이블을 만들 수 : 단지 참조 ID에 대해 하나의 열을 사용 flagged_id, 유형, ID, 원인 곳 형 flagged_comments에 대한 flagged_user에 대한 = 1, flagged_postings 2, 3 . id는 사용자의 ID 또는 게시 또는 설명을 나타냅니다. 그러나이 테이블에서 쿼리하는 동안 형식 열에 대한 추가 검사를해야합니다.

+0

! 나는 그런 간단한 해결책을 보지 못했습니다. – ggfan

관련 문제