After posting this lol... I think I might have figured it out.
Have a ServerUser relationship and than have one of the columns be a json that has channel_id and time stamp of last read at. That way, you are just doing 1 simple query
{
{'channel_id' => '1' , 'last_time_read_at' => '34343535'},
{'channel_id' => '2' , 'last_time_read_at' => '34343535'},
{'channel_id' => '3' , 'last_time_read_at' => '34343535'},
{'channel_id' => '4' , 'last_time_read_at' => '34343535'},
...
}
So it would be like
server_id foreignid
user_id foreignid
channels_last_read_at json / longtext?
Still would like to see if there can be other solutions