데이터베이스에서 알림 추적: Facebook에서 영감을 받은 디자인
데이터베이스 디자인은 특히 소셜 미디어에서 데이터를 효율적으로 관리하고 검색하는 데 중요한 역할을 합니다. Facebook과 같은 미디어 애플리케이션. Facebook이 알림을 추적하는 방법을 이해하면 유사한 시스템을 설계하는 데 유용한 통찰력을 얻을 수 있습니다.
알림 테이블
알림 테이블에는 고유 ID(id)를 포함하여 각 알림에 대한 정보가 저장됩니다. , 해당 알림이 속한 사용자(userid), 알림 설명(업데이트) 및 알림이 생성된 시간(시간). 이 테이블은 알림을 저장하고 나열하는 데 사용됩니다.
알림 읽기 테이블
어떤 알림을 읽었는지 추적하기 위해 별도의 알림 읽기 테이블이 도입되었습니다. 이 테이블에는 다음 필드가 포함되어 있습니다.
읽지 않은 알림 쿼리
특정 사용자에 대한 읽지 않은 알림을 검색하려면 다음 쿼리를 사용할 수 있습니다.
<code class="sql">SELECT `userid`, `update`, `time` FROM `notifications` WHERE `notifications`.`userid` IN ( ... query to get a list of friends ...) AND `notifications`.`time` > ( SELECT `notificationsRead`.`lasttime_read` FROM `notificationsRead` WHERE `notificationsRead`.`userid` = ...$userid... )</code>
이 쿼리는 알림 테이블을 알림 읽기 테이블과 조인합니다. 알림 타임스탬프를 사용자의 마지막 읽기 시간과 비교합니다. 사용자의 마지막 읽은 시간보다 큰 타임스탬프가 있는 알림은 읽지 않은 것으로 간주됩니다.
읽은 알림 업데이트
사용자가 알림 페이지를 열면 알림 읽기 테이블의 해당 행 현재 시간을 마지막으로 읽은 시간으로 기록하도록 업데이트해야 합니다. 이 플래그를 유지함으로써 후속 쿼리는 읽지 않은 알림만 효율적으로 검색할 수 있습니다.
이 접근 방식을 사용하면 Facebook이 알림 시스템을 관리하는 방식과 유사한 방식으로 읽은 알림과 읽지 않은 알림을 효율적으로 추적할 수 있습니다.
위 내용은 Facebook은 읽은 알림과 읽지 않은 알림을 어떻게 추적하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!