2016-12-14 1 views
0

J'essaie d'enregistrer des hashtags avec une image sur mon serveur.Comment enregistrer les hashtags Swift

Je sauvegarde tout correctement, Image et la légende de l'image.

Maintenant, j'essaie d'enregistrer le hashtag qui sont dans la légende, j'ai cependant d'une approche, mais je ne suis pas sûr. Donc dois-je rechercher dans le texte de la légende le préfixe "#" lors du téléchargement d'une image et enregistrer chaque hashtag individuellement et créer une nouvelle ligne pour chaque hashtag différent dans mon tableau "Hashtag"?

Cela semble être la façon la plus basique que je suppose, mais s'il y avait par exemple 20 hashtags, cela ne ferait-il pas 20 requêtes? Maintenant, je ne fais pas plus de 20 requêtes pour télécharger 1 image serait une très bonne idée ...

Maintenant, j'utilise MYSQL et PHP pour mon serveur, et je pensais que je pourrais faire la recherche dans mon PHP fichier, mais ce serait le même résultat que l'idée précédente ...

Alors maintenant, je pense que ce serait possible: Sauvegardez tout normalement, mais quand je tape sur le hashtag dans mon application, je recherche à travers toutes les légendes de chaque image pour l'hastag sélectionné et le retour que ppost ?!

Je ne suis pas sûr, mais si quelqu'un pouvait me donner un avis ou une recommandation qui serait génial!

Tout le meilleur.

Répondre

0

Vous pouvez mettre en œuvre une structure db comme ceci:

Table images 
    - image_id (primary key) 
    - filename 
    - caption 

Table hashtags 
    - hashtag (primary key) 

Table images_hashtags 
    - image_id (foreign key on images.image_id) 
    - hashtag (foreign key on hashtags.hashtag) 

Au cours du chargement , utilisez une regex pour trouver tous les hashtags dans la légende et placez-les dans un tableau. Puis, enregistrez-les tous dans une table de hashtags avec une seule requête (utilisez REPLACE, INSERT IGNORE ou ON DUPLICATE KEY); Si le hashtag existe déjà, il ne peut plus être inséré. Puis, insérez la relation image-hashtag sur la table images_hashtags toujours avec une seule requête.

C'est une approche un peu redondante, mais vous aurez plus de flexibilité pour récupérer des données. Si la légende peut être modifiée par l'utilisateur, vous devrez effacer certaines lignes lors de la mise à jour. À mon avis, il est préférable d'envoyer la légende propre et de gérer la logique des hashtags du côté serveur.

+0

Merci pour cela, je n'étais pas sûr que j'allais avoir une réponse! N'importe quel j'ai trouvé une manière semblable à ce que j'ai mentionné dans ma question qui travaille actuellement smotthly et n'a aucune différence de vitesse si j'ajoute 20 hashtags ou 0 hashtags. Mais j'y reviendrai la semaine prochaine pour tout vérifier. Donc je vous le ferai savoir mais pour le moment votre réponse semble la meilleure! –

0

Vous pouvez vous envoyer l'image en tant que données multipart et tableau ou hashtags comme paramètre par une clé, par exemple:

"hashtags" : ["first", "second"]