I want to create a windows 10 universal to-do app with offline sync capability. So I checked out this tutorial which helped me to get started on the offline functionality. But I was wondering how should I design my Azure database to get data efficiently and moreover I also should have the ability to store images. So here are my questions:

  1. Is it good to put all the users data in one table? Ex: (Content Table): ID , FK(UserId), Title, Desc, Created , Edited.
  2. Can I use any indexing technique to efficiently query for the user data as CRUD operations will be very common since it has a sync feature.

If the above is not really a good technique could you please tell me what is the right way to go about it. As I'm not so experienced when it comes to DB designing.

  • Are users going to share tasks? A single user querying a hundred task records in a table with a million records is not that much especially if you index on the user id foreign key.
    – JeffO
    Sep 10, 2015 at 19:38
  • No users don't share task(For now at least). I'm going to go with the solution given here and get back if any problems or optimizations are needed. Sep 10, 2015 at 20:48

1 Answer 1


For the tables you might want

  1. User (User_Id, Name, and so on)
  2. Category (Category_Id, Name)
  3. Task (Task_Id, Category_FK, User_FK, Name, Date_Due)

This article will give you some background on indexes in Azure.

If you are going to have heavy hits to the database. It would be better to place the database into a caching system. This would take the load off the database.

  • How do you think I can query the results efficiently cause there will be a lot of CURD operations and the tables will contain at least a couple of millions of records and will increase every day by a large amount. Sep 10, 2015 at 13:43
  • @AbsoluteSith see my edit
    – user60802
    Sep 10, 2015 at 14:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.