如何在数据库中表示逻辑模型?

时间:2014-04-01 13:16:47

标签: c# sql tsql

我会尽力解释我目前的问题:

想象一下我有这样的事情:

(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和括号将一些这样的函数类型组合在一起。我不认为用表很容易做到:(

1 个答案:

答案 0 :(得分:1)

听起来你走在正确的轨道上。

我会为函数创建一个表,因此每个表都有一个要使用的ID,以及一个单独的逻辑表达式表。根据表达式(?)的复杂性,这些可能以“普通”字符串格式表示,与您的示例非常相似,或者可能以XML格式表示。后者允许添加属性,这可能对函数或任何其他元数据之间的关系信息有用。

我认为将每个逻辑表达式视为单个“项目”是有意义的。因此,对我来说,存储它们并将它们表示为单个“项目”(即,作为单个DB记录)也是合理的。

在XML或类似的东西中表达这样的逻辑语句应该不会太困难。直接在数据库中执行也可能,但我的预感是,以有意义和完整的方式定义所有必要的关系会更加复杂,之后也不会太难阅读和理解。