【发布时间】:2012-08-09 23:17:04
【问题描述】:
我目前正在解决一个工作问题,我需要根据用户定义的限制获取数据并修剪生成的场景。我已经尝试了很多东西,但似乎无法让任何东西像我想要的那样高效运行。我可能不得不在数据库之外运行,以便可以扩展运行,但我认为如果可能的话我应该尝试在数据库内部执行。例如,如果我有 3 个实体:
Transportation Type:
Car
Boat
Plane
Color:
Blue
Green
Red
Purple
White
Accessories:
Trailer
Wheels
Propeller
Parachute
用户可以输入限制:
Transportation_Type=Boat, Accessories= Wheels
因此,任何有船和轮子的场景的组合都会受到限制。
Example Valid Scenario with restriction: Boat/Red/Trailer
因此,这变得复杂的地方在于,您可以想象,如果我为这 3 个实体构建所有可能的场景,即使有用户定义的限制,也不会太糟糕。但是,如果有 22 个实体(实体基本上是一个有值的级别)怎么办。您可以想象这可能会变得巨大并且难以应用限制。尤其是当它是一组级别/值(如船和轮子)构成限制时。
有人有什么想法吗?
通过构建动态的类似语句,我能够通过大约 14 到 16 个级别使其真正发挥作用,我可以检查派生的场景。但在那之后,处理时间会爆炸(如果级别中有更多的值,它可能会在较低级别)。
【问题讨论】:
-
数据库表是什么样的?
-
嗨,戈登。目前,实体不是分开的。它们存储在相邻列表(父子)中,并且限制在集合中定义......所以(构成限制集的限制组合)
标签: c# sql-server database sql-server-2008