I have a table of entities, "stories" for example. It will contain a large list of "stories" that people can vote on.
The main feature of my application will be users reading the "top" stories, which have the most votes (and might eventually have other algorithms going on).
My first thought for the structure of the Azure table is:
- RowKey = unique id
- PartitionKey = ??? (maybe User Id, because you can view a User's list of stories)
- Title
- Description
- User Id
- Url
How can I effectively query against stories considered the "top" stories? Most of the traffic is going to be querying the top stories, and doesn't need to pull out ranges of stories otherwise. What I'm wanting is a way to index the top stories, but indexes are not a feature of table storage. I thought about keeping a second table, but that could get hairy if the user updates the story in the other table.
This is my first hangup using Azure Table Storage, the rest of the app is going to work great. I'd hate to upgrade to using full SQL Azure because of this one issue.
PS - I'm open to storing the "top" stories in another place besides an Azure table if it makes sense. My server will be running C# web api, but probably makes no difference.