我正在用 C# 和 Java 构建一个查询构建器模块,用户可以在其中根据指定的连接表达式连接表,例如[Table1].[ID] = [Table2].[ID]
.
Table1
用户可以修改连接表达式,并且可以选择将任何字段与 中的任何字段等同起来Table2
。
我想检查列数据类型和长度是否相同,但是例如varchar(10)
可以将列与nchar(10)
列连接。只要长度相同,就可以选择这些不同的数据类型。
因此,我应该在我的检查中指定什么条件来查看用户选择的连接表达式是否有效?我不能单独依赖 PK/FK 约束。
这些标准可以应用于 C# 或 Java - 没关系,因为一旦我有了一个通用的答案,我就可以将我的解决方案转换为适合两者。