Suppose I have a table "Progress" with two columns. One column is ID which is identity. Another column is Progress_Label
ID Progress_Label
1 Submitted
2 Approved by user
3 Rejected by leadership
4 Cancelled
5 Completed
What is the best programming practice, should I go by ID or by label? In my stored procedures, functions, or in programming code methods etc should I search records by the ID = 3 for example or should I type "Where progress_lable is Rejected by leadership" ?
If somebody would want to edit the labels, all the code would stop working if I go by the label?
At the same type if I type the label, code looks more understandable since it says right in the code what is it we are looking for?
Are there any articles regarding this?