我想知道人们如何处理以下情况(这是假设的想法)......
TABLE A (Orders): OrderId, StatusId
等(状态表上的外键)TABLE B (Statuses): StatusId, Name,
ETC
表 B 需要存在(IOW,例如,我不能只创建一个状态枚举),因为订单状态列表需要随着业务需求和实践的变化而动态变化,并且您的程序中有方法,如GetAllOrders()
, GetAllStatuses()
,GetOrderByStatus(int statusId)
等。但是,您似乎一直需要访问“硬编码”状态。例如,当第一次创建订单时,它的状态是“新建”,您需要在没有任何用户干预的情况下将其设置为该状态。也许您有一个 GetUnfilledOrders 报告,它返回所有正在“处理”的订单,同样无需用户选择他们正在寻找的状态,因为报告的名称暗示了他们想要的东西。我希望你能明白。
在这些情况下,我一直在做的是创建一个设置,例如DefaultNewOrderStatus (int)
并将其设置为我想用于新订单的状态的 id,或者StatusesForUnfilledOrdersReport (int[])
再次设置要使用的状态列表。如果我们的状态“架构”发生变化,我可以即时更改这些设置。问题是需要使用的“硬编码”值的数量似乎在增加(也许现在我需要一个默认状态来设置已完成的订单,或者一个状态列表用于显示“打开”订单 UI 视图,等)以及随之而来的,处理它们的设置数量也是如此。
我非常想知道其他人如何处理这些情况?