0

J'ai une table « jeton », un 'User' peut avoir plusieurs 'Token', et un 'Token' ne peut appartenir à 1x 'User', je peux utiliser hasMany() & belongsTo() pour cette relation, mais à chaque fois une fermeture de session utilisateur d'Android & iOS, la ligne jeton l'enregistrement sera supprimé, et lors de la connexion de l'utilisateur, un nouvel enregistrement de jeton sera ajouté à la table, donc la clé primaire incrémentée sera consommée et gaspillée, donc je me demande si je devrais supprimer la clé primaire et utiliser Laravel Query Builder. depuis Laravel Eloquent ne peut pas fonctionner correctement sans une clé primaire?Jeton de notification push Laravel: utiliser le générateur Eloquent ou Query?

+0

est-il nécessaire de retirer la enregistrer de la table? Sinon, vous pouvez définir un token à null à la déconnexion et mettre à jour à la connexion et créer un enregistrement de jeton s'il n'existe pas encore. Cela me semble plus simple. –

+0

Et si j'ai plusieurs enregistrements NULL? donc si un 'Utilisateur' a 3 jetons différents pour GCM android et se déconnecte sur 2x, alors je devrais NULL les 2 enregistrements? et si plus tard le même utilisateur se reconnecte, je mettrai à jour l'un des enregistrements NULL et si aucun enregistrement NULL n'est trouvé, il crée un nouvel enregistrement? – yeln

+0

Je dirais que vous avez seulement un jeton par (type de jeton?). Mettre à jour l'enregistrement qui est lié avec le jeton et avec quel type de jeton il est en tant que condition. Pour le type, vous pourriez utiliser un ENUM, mais je ne suis pas sûr de la complexité de la situation. Comme je ne suis pas sûr maintenant pourquoi un utilisateur peut avoir plus de 1 jeton. –

Répondre

0

Cela peut être l'une des solutions que vous pouvez utiliser.

Faire la table token quelque chose comme ceci:


Tableau Token

id | user_id | dispositif | jeton


Dans l'appareil, vous pouvez stocker une valeur unique de l'appareil auquel vous faites référence.

Quelques choses concernant la table symbolique:

  • Insérer un nouvel enregistrement jeton si l'on n'existe pas encore avec le dispositif actuel. (Set jeton)
  • Si un utilisateur déconnexions l'appareil ensemble unique jeton null (Mise à jour)
  • Si une connexion utilisateur mise à jour à nouveau la valeur symbolique de zéro à la valeur symbolique
+0

Je vois, donc si un utilisateur se connecte avec 3 appareils Android, et plus tard la déconnexion de 2, 2x enregistrements seront réglés sur NULL, alors la prochaine fois, quand le même login utilisateur, je devrai trouver si les enregistrements avec token = NULL , et si c'est le cas, je vais mettre à jour, sinon créer une nouvelle ligne d'enregistrement? – yeln

+0

@yeln Oui, je pense que vous l'avez maintenant. Les notifications que vous pouvez envoyer à tous les utilisateurs connectés où token! = Null. –

+0

@yeln si c'est une solution à votre problème pouvez-vous accepter la réponse? –