人々が次のシナリオをどのように処理するのか疑問に思っています (これはアイデアを理解するための仮説です)...
TABLE A (Orders): OrderId, StatusId
など (ステータス テーブルの外部キー)TABLE B (Statuses): StatusId, Name,
等
テーブル B が存在する必要があります (IOW、たとえばステータスの列挙を作成することはできません)。これは、ビジネス ニーズや慣行が変化し、プログラムGetAllOrders()
にGetAllStatuses()
、GetOrderByStatus(int statusId)
、 などのメソッドがあるため、注文ステータス リストを動的にする必要があるためです。ただし、「ハードコードされた」ステータスに継続的にアクセスする必要があるようです。たとえば、注文が最初に作成されたときのステータスは「新規」であり、ユーザーの介入なしでそのステータスに設定する必要があります。おそらく、"処理中" のすべての注文を返す GetUnfilledOrders レポートがあるかもしれませんが、レポートの名前はユーザーが求めているものを暗示しているため、探しているステータスをユーザーが選択する必要はありません。理解していただければ幸いです。
これらのケースで私が行ってきたことはDefaultNewOrderStatus (int)
、新しい注文に使用したいステータスの ID に設定する、またはStatusesForUnfilledOrdersReport (int[])
使用するステータスのリストを再度設定するなどの設定を作成することです。ステータス「アーキテクチャ」が変更された場合、これらの設定をその場で変更できるという考えです。問題は、使用する必要がある「ハードコードされた」値の数が増えているように見えることです (おそらく、フルフィルメントされた注文を設定するためのデフォルトのステータス、または「オープン」注文の UI ビューを表示するために使用するステータスのリストが必要です。など)とそれに伴い、それらを処理するための設定の数も行います。
他の人がこれらの状況にどのように対処しているかを知りたいです。