2012-02-06 1 views
3

저는 레일즈 3.2 (레일즈 질문에 루비가 아닙니다)를 사용 중이며 제가 작업해온 프로젝트의 마지막에 다가 가고 있습니다. 지금은 사용자 개인 메시징 기능을 구축 중입니다.사용자 개인 메시징의 기본 데이터베이스 구조는 어떻게 생겼습니까?

나는 http://www.novawave.net/public/rails_messaging_tutorial.html#start을 팔로우하고 있지만 어떤 것은 이해가 가지 않으며 어떤 것은 작동하지 않습니다. ROR의 버전이 오래된 것일 가능성이 큽니다.

이제이 작업을 직접 수행하려하지만 시작하려면 도움이 필요합니다. 이 문제를 해결하는 가장 좋은 방법을 찾는 데 문제가있는 서클에 참석할 예정입니다.

나는 이미 비슷한 것을 가지고있다. "wall posting"여러 사용자가 1 개의 벽 포스트를 유행처럼 말하면된다. 이 경우 원래 벽 게시물이 삭제 된 경우 모든 댓글도 삭제됩니다.

내 메시징 시스템을 사용하면받은 편지함으로 간단하게 보내고 싶습니다. 사용자는 sent_at 날짜순으로 보내고받은 메시지를 볼 수 있습니다. 사용자가 다른 사람이 삭제하지 않고 메시지를 삭제할 수 있기를 바랍니다. - 난이 달성 할 수있는 방법을 생각하고 내가

을 생각하고

메시지의 두 사본이있다.

-1 사용자 B (받는 사람)에 대해 사용자 A (보낸 사람)에 대해 1을 지정하면 다른 사용자에게 영향을 미치지 않고 메시지를 독립적으로 관리 할 수 ​​있습니다.

은 지금까지 나는 3 개 테이블 것에 대한 생각 :

  1. 메시지

  2. Message_copies

  3. 폴더 (이 자동으로 다음 가입에 생성되는 각 사용자에 대한 행을 저장합니다 이제까지 그들은 메시지를받을 때 ..... acts_as_tree ... ?? ... erm ... 파란 별? ..... 등 ... (나의 마음은 방황하기 시작한다.) ..

이것은 내 머리가 아플 정도입니다. 내가 뭘해도 내가 무엇을하려고하는지 전혀 모르겠다. 내가 예스 기분이들 때 나는 이것이 내가 지금 벽돌 벽을 만난다 고 생각한다.

솔루션

이러한 기능을 구현 누군가가 나에게 내가 달성하고자하는 것을 달성하는 데 필요한 데이터베이스의 테이블에 대한 정보를 제공 할 수있을 것입니다 만약 내가 기대했다. 나는 100 % 내가 그것을 할 수 있지만 킥 스타트가 필요하다는 것을 알고있다. 이 프로젝트를 시작한 이래로 이것은 가장 큰 장애물이었습니다.

내 머리를 둥글게하고 같은 메시지를 두 번 저장하지 않으려 고합니다. 발신자에게는 한 번, 수신자에게는 한 번. 그런 식으로 옳은 것처럼 보이지 않습니다.

모든 메시지가 저장되어 있고 가입시 자동으로 생성 된 각 사용자의 폴더 테이블이 있고 그 폴더 테이블에서 메시지 테이블에 저장된 메시지가 보낸 사람과받는 사람에 의해 사용되는 것이 가장 좋습니다. 사용자는 실제로 자신의 폴더에서 메시지를 삭제합니다. 다른 사용자의 보낸 사람 /받는 사람도 해당 폴더에서 메시지를 삭제할 때까지 여전히 메시지 테이블에 남아 있습니다.

친절한 답변

답변

2

메시지를받는 테이블과 메시지받는 사람을 나타내는 테이블은 어떻습니까? recip 테이블에서 "이 메시지로 무엇을 할 것인가"와 "유지, 회신, 삭제 (표시 안 함), 삭제 (표시)"등의 옵션을 가질 수 있습니다. 그러면이 항목에 가입 할 수 있습니다 주어진 처방이이 메시지에 어떤 일이 일어나는지를 염려할지 여부.

메시지 사본을 여러 개 만드는 것이 과도한 것처럼 보입니다.

+0

이것은 내가 끝내기에 좋은 시작이었습니다. 감사.. – LondonGuy

관련 문제