When I have a single notifiable user, a single entry in the notifications table is inserted, along with a mail/sms sent is perfectly working via channels.
The issue is when I have a user collection, a list of 1k users following me, and I post an update. Here is what happens when using the Notifiable trait as suggested for multi user case:
- 1k
mails/smssent (issue not here) - 1k notification entries added to the db
notificationstable
It seems that adding 1k notifications to the db notifications table is not an optimal solution. Since the toArray data is the same, and everything else in the db notifications table is the same for 1k rows, with the only difference being the notifiable_id of the user notifiable_type.
An optimal solution out of the box would be:
- laravel would pick up the fact that it's an
arraynotifiable_type - Save a single notification as
notifiable_typeuser_arrayoruserwithnotifiable_id0 (zero would only be used to signify it's a multi notifiable user) -
Create/use another table
notifications_readusing thenotification_idit just created as theforeign_keyand insert 1k rows, of just these fields:notification_idnotifiable_idnotifiable_typeread_at
I am hoping there is already a way to do this as I am at this point in my application and would love to use the built in Notifications and channels for this situation, as I am firing off emails/sms notifications, which is fine to repeat 1k times I think, but it's the entry of the same data into the db that is the problem that needs to be optimized.
Any thoughts/ideas how to proceed in this situation?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire