问题描述
有一组约 20 种非常相似的输入类型(可以用 Id、Value 表示),它们都驱动一组约 20 种输出类型。每个输入类型都有许多可能的值。每种输出类型也有许多可能的值。
示例规则是 InputTypeA + InputTypeB determines OutputTypeA
或 InputTypeA determines OutputTypeB
。 n
输入类型可以驱动输出,但目前最大数量为 3。
- 存储输入值的最佳方式是什么?我正在考虑:
解决方法
我认为这是 3 个主要概念。
条件:触发规则需要满足什么条件? 规则:当规则触发时,哪些结果为真? 结果:哪个输出火,哪个值?
条件被建模为一个或多个输入及其值(您的示例使用 InputTypeA + InputTypeB,因此我假设规则具有一个或多个符合条件的输入)。
结果被建模为一个或多个输出及其值。
特别是:
Condition
-----------
ID
RuleID
InputType
InputValue
Rule
----
ID
Result
-------
ID
RuleID
OutputType
OutputValue
如果输入类型和输出类型的逻辑比较多,可以创建一个有外键关系的查找表。
示例可能是:
条件
ID RuleID InputType InputValue
1 1 DrivingIn30zone 1
2 1 CurrentSpeed 40
Rule
ID Name
1 Don't break the speed limit
Result
ID RuleID OutputType OutputValue
1. 1 SetSpeed 29
然后,您将搜索与当前输入值匹配的条件,以查看输出状态: