2012-08-16 3 views
1

나는 대화의 목록을 보여주는 대화 시스템을 만들었습니다. 메시지를 삭제 (숨기기) 할 수 있습니다.다른 테이블에 ID가있는 경우 null을 표시합니다.

문제는 모든 메시지가 숨겨져있을 때 대신 (임의적으로?) 임의의 메시지가 표시된다는 것입니다. 이름이나 다른 것을 나타내면 안됩니다.

SELECT * FROM 
(SELECT * FROM post ORDER BY datotid DESC) as inv 
WHERE fk_bruger_til = '$brugerid' 
GROUP BY fk_bruger_fra 
ORDER BY datotid DESC 

그리고 데이터베이스 구조 : 여기

는 SQL 쿼리입니다

메시지 테이블 :

message_id | fk_user_to | fk_user_from | message | datetime | read 

숨겨진 메시지 테이블 :

deleted_id | fk_message_id | fk_user_id 
+0

메시지 테이블의 'post_id' 테이블이 숨겨진 메시지의'fk_post_id'에 없으면 어떻게됩니까? –

답변

2

대신 필요 두 개의 분리 된 메시지 테이블/숨겨진 메시지 왜 메시지 테이블에 1/0에 의해 숨겨져 있는지를 나타내는 추가 필드가없는 것입니다.

이렇게하면 SQL 쿼리를보다 쉽게 ​​작성할 수 있습니다.

테이블 필드의 의미를 설명 할 수 있으면 더 쉽게 만들 수 있습니다. 내가 알아낼 수있는 사람은 오직 결석 환자뿐입니다.

+0

나는 user1이 메시지를 숨길 수 있기 때문에 별도의 테이블에 보관하는 것이 현명하다고 생각했다. user2는 메시지를 숨기지 않았으므로 user2가 메시지를 볼 수있다. 테이블을 지금 번역 해 드리겠습니다 :-) –

관련 문제