我设计的ASP.NET Web窗体应用程序将用于使用自定义值和过滤器动态查询数据库。
例如:
拉出3个字段:SKU,描述,价格,颜色。
Description的值应为ProductName +逗号+空格+ 描述
Price的价值应为价格+ 10.00。
如果SKU = 123,则Color的值应为红色。
我需要存储这些"规则"在我的SQL数据库中,以便我可以在以后根据这些规则查询我的数据库。
最初,我打算将规则存储为SQL文本,如" ProductName +',' + Description",然后在我的动态SQL中使用它。
但如果我这样做,那么需要做的一些事情是行不通的:
我需要想法如何解决这个问题 - 我的数据库结构以及如何从这些规则中查询。
我使用的是ASP.NET Web Forms,SQL Server数据库。
感谢您的帮助。
答案 0 :(得分:0)
对于这个想法,我想到的是定义业务规则表并将值放在其中,如:
BR_PK BR_CODE BR_VALUE
1 SKU_Fields P.SKU,P.Description,P.Price,P.Color
2 Price_Val P.Price + 10
您可以加入动态查询以获取该数据并加入其他表的数据,但您必须保持与业务规则表中定义的别名相同。
我会尝试找到一些更好的方法,但它会立即出现在我脑海中。
答案 1 :(得分:0)
我最终创建了一个包含Fields(FieldID,FieldName)和Values(Value,ValueType,Datatype,FieldID)的表。所以,如果我需要描述等于ProductName +逗号+空格+描述,我会在Fields表中有一个记录,其中FieldName =“Description”和ProductName的值记录,逗号+空格和描述。 ProductName和Description的ValueType为“Field”,“,”(逗号空格)将为“Static”。
然后,我使用基于这些属性的参数构建了我的sql查询。