Ana içeriğe geç

message_read_state

message_read_state, her kullanıcının her mesaj için ayrı okuma/durum kaydını tutar. Böylece tek bir inbox mesajı farklı kullanıcılar için farklı klasör, okunma ve sabitleme durumunda olabilir.

Bu tablo, kullanıcı bazlı inbox deneyimini mümkün kılar; mesajın kendisi inbox tablosunda kalırken kullanıcıya özel durum burada saklanır.

inbox_message.status Enum Değerleri

DeğerAnlamı
unreadOkunmamış
readOkunmuş
deletedSilinmiş

inbox_message.folder Enum Değerleri

DeğerAnlamı
inboxGelen kutusu
archivedArşiv
trashÇöp kutusu

FK Davranis Notlari

FKON DELETEON UPDATENot
message_read_state.message_id -> inbox.idCASCADECASCADEMesaj silindiginde okuma durumu kayitlari temizlenir.
message_read_state.user_id -> users.idCASCADECASCADEKullanici silindiginde okuma durumu kayitlari yetim kalmaz.

Kolonlar

KolonTipNullAnlamı
idbiginthayırKayıt birincil anahtarı
message_idbiginthayırBağlı mesaj; inbox.id
user_idinthayırİlgili kullanıcı; users.id
statusinbox_message.statushayırKullanıcı açısından okuma/silinme durumu
folderinbox_message.folderhayırMesajın kullanıcı tarafındaki klasörü
snooze_untiltimestampevetBildirimin yeniden görünmesi için bekleme zamanı
auto_archive_attimestampevetOtomatik arşive alınma zamanı
pinnedbooleanhayırMesaj sabitlendi mi (DEFAULT: false)
read_timetimestampevetOkunma zamanı
create_timetimestamphayırKayıt oluşturulma zamanı
update_timetimestamphayırSon güncelleme zamanı

İndeksler

İndeksTipAçıklama
idPrimary KeyTablo birincil anahtarı
(message_id, user_id)UniqueAynı kullanıcı için aynı mesaja yalnız bir durum kaydı olabilir

Örnek Kayıtlar

{
"id": 1,
"message_id": 1,
"user_id": 1,
"status": "read",
"folder": "inbox",
"snooze_until": null,
"auto_archive_at": "2026-05-03 09:00:00",
"pinned": false,
"read_time": "2026-04-03 09:01:00",
"create_time": "2026-04-03 09:00:00",
"update_time": "2026-04-03 09:01:00"
}

Özet: Hoş geldiniz mesajı kullanıcı 1 tarafından okunmuş durumda ve inbox klasöründe tutuluyor.