소셜 네트워킹 웹 사이트를 구현하고 있으며 알림을 구현하려고합니다.소셜 네트워킹 웹 사이트에서 알림을 처리하는 방법
알림은 다음과 같은 요구 사항
- 모든 사용자는 ... 등, 사용자가 게시물과 같은 특정 이벤트 (변경 프로필 사진을, 어떻게 수행 할 때마다 알림을받을 게시물을 작성, 댓글을 떠나이
- 알림은 상태를 읽거나 사용자에 대한 통지의 집합 읽지 않은 경우. 다음 페이스 북처럼 사용자가 자신의 네비게이션 바에서
다음을 읽기 알림 아이콘이 표시 계속 (페이스 북 및 유래 등) 읽지 않은 입니다. 오우 내가 MySQL과 그것을 구현하는 생각입니다 :
알림 테이블 : type_of_event
, event_id
, message
Notification_read 테이블 : user_id
, notification_id
, 사용자가 알림을 트리거하는 이벤트를 수행 할 때마다 read
- 모든 추종자에게 을 전송하면 그 알림은
Notification
테이블에 저장됩니다. - 새 알림의 ID가 &이고 알림을 수신해야하는 각 사용자의 ID (알림 작성자의 팔로워)
- 사용자가 알림을 수신하고 읽을 때마다 알림을 수신 할 때마다
Notification_read
테이블이 작성됩니다 매번 통지, 통지가notification_read
테이블에 여러 번 기록 될 것이다 발생하기 때문에read
이 솔루션으로 표시됩니다은 수
(사용자가 얼마나 많은 추종자에 따라) 나에게 정말 비효율적 인 것 같습니다 어어 이 문제에 대한 더 나은 해결책이 있는지 말해주십시오.
이벤트가 동일한 모델에 저장되지 않습니다.나는'Like','Post','Comment' 등과 같은 것들을위한 별도의 모델을 원합니다. 또한, 저는 has_many를 할 수 있다는 것을 알고 있지만, 실제로 많은 중복을 저장해야합니다 (has_many를 통해 notification_read를 사용하거나, 또는 알림에 모두 저장). 사용자가 간단한 일정을 수행하고 팔로어가 1,000 명인 경우 모든 작은 이벤트에 대해 1,000 개의 새 레코드가 있기 때문에 그리고 사건은 자주 일어날 것입니다. – user2158382