我有一个算法可以从可行模型的空间中对模型进行采样。一个模型基本上是一个公式,所以一些分层对象结构。如果数据库尚未保留,我想将每个模型保留在数据库中。在查询数据库时,我有什么选择快速找到模型?我知道我可以使用Criteria和一个示例模型来确定模型是否已经存在于数据库中。有更快的方法吗?这是我对模型结构的第一次尝试:
public class Network
{
public virtual double Bias { get; set; }
public virtual IList<RBF> RBFs { get; set; }
}
public class RBF
{
public virtual double Weight { get; set; }
public virtual ISet<Gaussian> Gaussians { get; set; }
}
public class Gaussian
{
public virtual int FeatureIndex { get; set; }
public virtual double Mean { get; set; }
public virtual double StandardDeviation { get; set; }
}
答案 0 :(得分:2)
对于这种复杂的相等规则,最快的方法是使用算法将对象图转换为字符串或字节数组,使用加密哈希函数(例如SHA1)对此字符串或字节数组进行哈希处理,以及将哈希与树的根一起存储。
当您必须检查某个给定树是否已经退出数据库时,请在树上重新应用该算法,并检查所获得的哈希是否已存在于数据库中。
困难如下: