我会尽力解释我目前的问题:
想象一下我有这样的事情:
(a and b(c or d))
其中a,b,c
都是相同的类型。
我想
a)将信息存储在DB(SQLSERVER)中 b)根据存储的数据重新创建上述内容。
我想我的问题是..如何在DB中表示类似的类型,可以通过成对使用AND和OR来相互连接,也可以嵌套在括号中。
我最好的想法是将信息保存为字符串,将a,b,c
替换为各自的数据库ID,然后从数据库中提取信息时,将ID替换为实际项目并在现场评估
我想我想知道是否有更好的做法。对不起,如果不清楚,不是数据库专家 - 尽我所能解释!
更新** 将A,B等视为函数类型的外键,运行时返回三个值中的任何一个:True,False,N / A.我试图想办法通过使用AND,OR和括号将一些这样的函数类型组合在一起。我不认为用表很容易做到:(
答案 0 :(得分:1)
听起来你走在正确的轨道上。
我会为函数创建一个表,因此每个表都有一个要使用的ID,以及一个单独的逻辑表达式表。根据表达式(?)的复杂性,这些可能以“普通”字符串格式表示,与您的示例非常相似,或者可能以XML格式表示。后者允许添加属性,这可能对函数或任何其他元数据之间的关系信息有用。
我认为将每个逻辑表达式视为单个“项目”是有意义的。因此,对我来说,存储它们并将它们表示为单个“项目”(即,作为单个DB记录)也是合理的。
在XML或类似的东西中表达这样的逻辑语句应该不会太困难。直接在数据库中执行也可能,但我的预感是,以有意义和完整的方式定义所有必要的关系会更加复杂,之后也不会太难阅读和理解。