in actual projects, customers often clap their heads and decide to add and delete some status fields.
take a chestnut, for example, to publish an article, the initial status status field has only two, one is the "unpublished" status, and the other is the "published" status.
later, the customer asked to add a "under review" status, and then asked to add a "deleted".
status changes, along with a series of methods such as data statistics, operation log, integral calculation, query filtering, and so on, or even worse, some judgments made using this status status field also have to change.
so the question is how to encapsulate status fields to optimize? Or what should other methods pay attention to when calling this field?