페이스 북과 같은 웹 메시징 시스템을 만들고 싶습니다. 나는 이미 데이터베이스 구조에 대한 많은 대안을 생각하고 있지만 어떤 것이 가장 좋은 방법인지는 확신 할 수 없다. 여기에 두 개의 대안이 있습니다. 첫 번째는 두 개의 테이블을 사용하고 두 번째는 세 개의 테이블을 사용하지만 ERD에서 한 사이클을 만듭니다.웹 메시징 시스템 용 데이터베이스 구조
첫째, 세 표하지만, 개인적으로
user
----------
id
name
message_header
--------------
id
from_id
to_id
subject
status --> inbox, outbox, archive
time
message
--------
id
message_header_id
content
time
read --> read, unread
author_id
이 때문에, 나는,이 구조를 좋아 ERD의주기를합니다 메시지 테이블
user
----------
id
name
message
--------------
id
from_id
to_id
message_id --> refer to this table itself, to make me know which message is the topic
subject
content
time
status --> inbox, outbox, archive
read --> read, unread
두 번째로 자체 참조 두 표, 하나의 메시지 헤더와 많은 메시지 (내용) 만 사용하십시오. author_id 자체는 메시지가 왼쪽 (보낸 사람) 또는 오른쪽 (받는 사람)에 있는지 여부를 알기 때문에 제거 할 수 없습니다. 이 시스템은 두 사람의 메시징 시스템 용입니다.
기본적으로이 두 테이블은 동일하지만이 메시징 시스템을 구현하는 가장 좋은 방법은 무엇입니까? 전에 고마워.
조금 될 수있는 메시지는 특정 메시지에 대한 응답의 순서로 체인해야 하는가 또는 그들은 타임 스탬프 – aeonsleo
사용하여 응답 순서 (첫번째 높은 IDS)에 따라 표시되어야합니다 더 저렴하지만, 누군가가 인터넷없이 응답하고 효과적으로 메시지를 데이터베이스로 보내는 데 시간이 걸린다 고 가정 할 때 타임 스탬프 순서 지정 (물론 적절한 인덱스 사용)을 더 친숙하게 생각할 수 있습니다. 즉, 당신이 결정 :> –
"is_from_sender"속성의 사용은 무엇입니까? –