I have been worked on web apps and recently started working with an app based company. Here I have a case where I need to send GCM to users. I am bit confused that whether I should send GCM directly to users without storing it into my database OR I should store some data of GCM(like gcm message, gcm sent time, gcm status, etc) that has been sent by our app ? If yes, then what could be the best table design to store gcm data in RDBMS ?
I personally feel that I should store it in database so that I can keep track of it in future and might be helpful at time debugging. And at some regular time interval I can remove old GCM data from table.
Whether you save the details or not is up to you. It is possible.
If your goal for storing information of your GCM messages is for Statistics or Diagnosis, Google GCM actually has a Statistics and Diagnostics tool that you can use. However, as per View & diagnose Google Cloud Messaging (GCM) statistics.
GCM statisticss will be available for only published Google Play apps.
Also mentioned in this answer:
Note: Stats on the Google API Console are not enabled for GCM. You must use the Developer Console.
The Developer Console meaning the Google Play Developer Console.
Should you choose to storing the details your own way, answering what would be the best table design is a bit complicated. Since, you have a lot of factors to consider, depending on your use case and other stuff like that in order to decide which one to use.