>要求:如果属性组合不存在,则创建新ID,如果找到相同的组合,则重用ID。
我能想到的两种方法是使用哈希,然后将 ID 绑定到哈希代码。
或
使用复合 PK 检查行是否不同。
什么是最好的处理方法,同时牢记性能和内存。
例如。
class Lens{
String axis;
String cylindrical;
String spherical;
float height;
float width;
String package;
...... and few more
}
对任何其他方法的建议表示赞赏。
我建议散列而不是复合PK,主要是因为以下原因:
-
如果将来您想在哈希中添加任何其他键,您可以在不更改数据库表查询的情况下执行此操作,并且更改数据库表查询以在复合 PK 中添加新列最终可能会影响您以前存储的数据。
如果使用哈希, 则可以在存储之前通过将哈希与数据库中已存在的哈希进行比较来验证数据,但如果使用复合PK,则在存储时会收到重复数据的错误。
此外,我想性能和内存对这两种方法的影响都不大。