2012-03-23 2 views
2

사용자를위한 알림 시스템과 관련하여 SO에 대한 다양한 게시물 (예 : 사용자가 사진에 댓글을 달거나 메시지를 보내는 등)을 많이 보았습니다.PHP/MySQL 사용자를위한 시스템 알림

웹 사이트 관리자가 생성하는 "시스템 알림"을 ​​함께 묶는 방법이 궁금합니다. 시스템 유지 보수에 대한

1) 알림/다운 타임 2) 향후 변경 3) 시스템 -을 표시해야하는 다른 메시지의주의 사항 :이 같은 에 로그인시 모든 사용자에게 표시되는 메시지가 될 수있다 넓은

어떻게하면 좋은가요? 이 메시지를 모든 사용자에게 표시하고 싶습니다. 사용자는 "숨기기"(따라서 "읽음"으로 표시) 기회를 갖게되어 나중에 로그인 할 때 다시 나타나지 않게됩니다. 이 작업은 데이터베이스 측, 세션 또는 둘 다 수행해야합니까?

시작하는 방법에 대한 아이디어는 크게 감사하겠습니다.

+0

사용자에게 m : n 알림 표와 읽기 열 (tinyint 0 또는 1)을 추가하고, 읽기가 0이면 템플리트 내에서 표시하고 클릭시에는 행을 1로 업데이트하십시오. 나는 그 질문을 비판하지 않는다고 생각한다! – Sgoettschkes

답변

2

msgid, message, creationTime, expirationTime으로 구성된 알림 테이블이 있습니다. 그런 다음 userNotifications와 같은 users 테이블은 userID, msgID로 구성됩니다.

사용자가 메시지를 해제 한 것으로 플래그를 지정하면 사용자 ID에 메시지 ID를 추가합니다. 이렇게하면 만료되지 않았으며 사용자가 해고하지 않은 모든 알림에 대한 쿼리를 작성할 수 있습니다.

+0

또는 메시지 ID로 부울 값을 보유하고 사용자가 숨긴 경우 쿠키를 만들 수 있습니다. PHP로 읽은 다음 페이지에 알림을 생성하지 않는다면 설정하십시오. –

+2

@scjosh 그리고 그가 집에서, 학교에서, 직장에서, 공항에서, mcdonald에서 로그인한다면, 그는 여전히 통보를 받고 성가심을 느낍니다 ... mysql이 갈 길입니다. –