In my company's software product, a number of database tables make use of a "display_order" field. It's an integer that controls the display order of the elements on the page.
Deep down in my gut, I feel like this is a bad practice. (Or at least, a less-than-optimal design choice). However, I'm having trouble articulating to myself why this is a bad practice.
So far, the only reasons I've been able to come up with are these:
It mixes the view into the model.
Changing order is a potentially expensive database operation that touches many different rows.
In many cases, if you knew the order of the elements, the table might be small enough that the table is a waste to begin with. For example, in our "statuses" table, the statuses ought to be a simple hard-coded array instead of a separate "lookup" table.
Does anyone else have any good arguments for avoiding "display_order" fields in your database design?