Muszę podjąć decyzję w oparciu o dość duży zestaw ośmiu współzależnych warunków.Jak zaimplementować macierz decyzyjną w C#
| A | B | C | D | E | F | G | H
-----------+---+---+---+---+---+---+---+---
Decision01 | 0 | 1 | - | 1 | 0 | 1 | - | 1
Decision02 | 1 | 0 | - | 0 | 0 | - | 1 | -
...
Decision11 | 1 | 0 | 1 | 1 | 1 | - | 1 | 1
Każdy z warunków od A do H mogą być prawdziwe (1), fałszywe (0) lub nie dotyczy (-) do podjęcia decyzji.
Więc z danym wejściem
A B C D E F G H
1 0 1 0 0 1 1 1
powinna ocenić do Decision02.
Decyzje są jednoznaczne, więc z dowolnego zestawu warunków wejściowych jasno wynika, która decyzja musi zostać podjęta (aw przypadku, który nie jest objęty matrycą decyzyjną, zostanie zgłoszony wyjątek).
Deweloper, który pracował przede mną przy tym projekcie, próbował wdrożyć to jako 500-wierszowy zagnieżdżony - jeśli behemot, który oczywiście jest błędny jak diabli i nie da się go utrzymać.
Poszukałem więc najlepszego sposobu na wdrożenie takiego elementu logiki i trafiłem na tablice decyzyjne/tabele przeglądowe/tabele sterujące.
Znalazłem wiele generatorów stołowych decyzja, ale nie jeden kawałek kodu na temat sposobu wykonania decyzji proces :(
co mogę zrobić tabelę decyzyjną w podstawowej bazie danych MSSQL, lub w Kod lub xml, lub co trzeba. Muszę tylko kilka wskazówek, w jaki sposób zaimplementować to w ogóle.
Co jest najlepszą praktykę w celu realizacji tej logiki coś zupełnie innego?
Boolean nullable jest, gdzie chciałbym zacząć ... bool? Może być prawdziwe fałsz lub null – Sayse
@Sayse By - on nie znaczy, że jest ważny, np. Może być 1 lub 0. –