我需要比较 2 个数据库的数据。但是我只需要比较 data而不是 keys,它们可能不同(但对象之间的关系必须相同)。
实际上,需要验证数据转换工具的正常运行。
简单的例子:
我在 C# .Net 和 Sqlite 上使用实体框架,这是数据库架构:
public partial class Document
{
[PrimaryKey, AutoIncrement]
public Int64 idDocument { get; set; }
public string name { get; set; }
}
public partial class Diagram
{
[PrimaryKey, AutoIncrement]
public Int64 idDiagram { get; set; }
public string title { get; set; }
}
public partial class Document_contains_diagram
{
public Int64 idDocument { get; set; }
public Int64 idDiagram { get; set; }
}
数据库:
按顺序排列的表格:文档 - 图表 - Document_contains_diagram
身份证件 | 姓名 | id图 | 标题 | 身份证件 | id图 | ||
---|---|---|---|---|---|---|---|
1 | “我的第一个文档” | 1 | “进化” | 1 | 1 | ||
2 | “我的第二个文档” | 2 | “未来” | 2 | 2 |
应视为与以下内容相同:
身份证件 | 姓名 | id图 | 标题 | 身份证件 | id图 | ||
---|---|---|---|---|---|---|---|
3 | “我的第一个文档” | 8 | “进化” | 3 | 8 | ||
4 | “我的第二个文档” | 6 | “未来” | 4 | 6 |
这是一个例子,我想要比较的真实数据库包含超过 50 个表,并且通常超过 10000 个条目(RAM 限制也是一个约束)。
所以我正在寻找一个通用的算法,或者一个工具来比较这两个数据库,这可能有助于我的搜索。我见过的所有工具都只检查表的严格相等性。也许将数据库转换为图表会起作用?