We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now

x

Auto-mail function...

NTGrE
NTGrE asked
on
Medium Priority
299 Views
Last Modified: 2012-05-05
Hello.
Seems that i need your Expert Opinion on this.
I want to create a function that will mail to users acording some results.
Let me explain a bit more what i want....
Im bulding a site where registered users can upload images and infos about each picture lets name it user_photos with many fields that holding infos about each picture.
I want to create a table, lets name it fav_user , where users will add some keywords in the fav_key field .
Lets say that the user1 add in fav_key the words...fish,shark,turtle...etc..
Later another user , user2, he is uploading 1 image with the word fish...
And another, user3, uploading some other images with the word shark...
I need a way to search in the user_photos table using the fav_key as keywords and later to mail in user1 that there are 2 new pictures in my site that contain the selected keywords fish and shark.
The problem is that ..
1)I want to send to user1 only 1 e-mail with the 2 results iv found and NOT 2 mails(one for each result)..and
2) if a 3rd user upload later another picture that contain one of the users1 keywords to mail again  user1 that 1 NEW picture is ready for him .
So far i can understand right that means that somehow i must keep log of the sended e-mails in order to Avoid to send the same infos to user1 more than once.

Can you pls tell me how must be the structure of my tables in my database?
And a general idea on how i can do what i want.

I hope that i explained well enough what i want to do.
Thnx in advance for your help...




Comment
Watch Question

hi

i would design the database like this :

pictures table - contains the picture code, the filename, userid who uploaded, and all the relevant details about the picture with the most important one - time of upload

keywords_per_picture table - contains one row for each keyword for each table
keywords_per_user table - contains one row for each keyword that a user entered
pictures_sent_to_user - contains one row for each picture code you sent to each user, and the time you sent it

now, what you need to do when you wish to send the email notification (let's say, once an hour)
1) get the max upload_time of pictures you sent to anyone (you can save it in a different control table so you will know to limit your search in the pictures table only to the new pictures you have not checked yet
2) for all the new pictures in the picture table :
  get all the users you need to send these pictures too (get the pictures keywords from the keywords_per_picture table   and join it to the keywords_per_user table.  order your result by userid
3) using a cursor create an email for each user (since you oredered the result by user id it will be easy to see which pictures should go to which user in a single mail)
4) update the picutres_sent_to_user table

sounds good ?

momi

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Yes momi..sounds BILLIAND..cause you just giving me an idea !!!!
You r right about the time uploaded the picture..is the most important!!!
and you know why???
Since our script will run every hour we can do a search in items uploaded ONLY THE LAST HOUR...right??
This way i think that we avoid much work cause we dont need to monitor the sended e-mails and we ensure that the infos will send are unique.
Right???
yep
you are correct
since you are saving the update time you get this benefits :
1) scan only the last uploaded pictures since the last time you ran your program
2) send each picture only once to each user
3) it gives you flexability with timing your program (you can run it today once an hour, and next month, once every 30 minutes....)

i'm glad you like the idea

momi

Author

Commented:
Once again..Thnx momi..
I ll be back with more questions on this.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.