Tasdemir Eğer kaydı sadece bir kullanıcı görebiliyorsa (kullanıcıya özel ise) is_check gibi boolean bir alan yeterli ama read_at şeklinde isim verip timestamp tutarsanız aynı zamanda ne zaman okunduğunu da tutmuş olursunuz. Bu alan null ise okunmadı; dolu ise o tarihte okundu anlamına gelmiş olur:
+----+----------------------+---------------------+
| id | title | read_at |
+----+----------------------+---------------------+
| 1 | Check shopping list! | 2022-01-05 21:29:26 | // Bu tarihte okunmuş.
| 2 | Online meeting | | // Henüz okunmamış...
+----+----------------------+---------------------+
Eğer kaydı birden fazla kullanıcı görebiliyorsa her kullanıcı için ayrı ayrı okundu bilgisi tutmanız gerekecek. Bunu ise 2 yolla yapabilirsiniz.
Birincisi ayrı bir tabloda tutmak:
+---------+---------+---------------------+
| user_id | todo_id | created_at |
+---------+---------+---------------------+
| 1 | 1 | 2022-01-05 21:29:26 |
| 13 | 1 | 2022-02-10 03:10:44 |
+---------+---------+---------------------+
// $table->unique(['user_id', 'todo_id']);
İkinci yol ise todo tablosunda jsonb bir alanda tutmak (kullanıcı sayınız az ise uygun):
[
{
"user_id": 1,
"created_at": "2022-01-05 21:29:26"
},
{
"user_id": 13,
"created_at": "2022-02-10 03:10:44"
}
]