I am working on a CMS that is starting to evolve a bit.
We started off with content that had the following priorities ( columnn in the db on the content table): HIGH MED LOW. Data was fetched by priority HIGH being on top etc.
Now after a few months a need has risen to have sub priorities: HIGH [ high, med , low ], MED [high, med, low ] etc.
I have a test branch with a sub-priority column in the db. So fetch by priority now brings back HIGH(high) HIGH(med) HIGH(low) first. Wondering is there a better way to do this that I not seeing.
There is a rails app.
1
If priority is not a small (3) set of values, and nuances between the priorities is necessary, then it is a larger enumerable set.
How large you make this set is up to you, but it is likely easier to make it very large (1 .. 1024 for example), but then you have to discipline the users to not put everything at max priority anyways. This is often a problem with bug trackers where the business sets the only priority (high, medium, low), everything is high. Then they add critical, and everything is critical or high.
Consider trying to measure multiple metrics at once to determine the priority. While bug tracker focused – Improving Bug Triage with User Pain takes multiple metrics that are orthogonal to each other:
- Type of bug (crash – documentation)
- Priority of bug (breaking build – nuisance)
- Likelihood of hitting the bug (everyone hitting it – one person hitting it)
Score each of these on a 1 .. n scale, multiply them together and divide by the max. This gives a number between 100 and 1. And there is your priority.
For a CMS, one could consider such metrics as:
- Importance of article (this is very important – just a notification)
- Visibility of article (this goes on the front page – this goes to the back page)
- etc…
1