我想在我的數據庫表中使用文件路徑作爲鍵。但使用長字符串作爲鍵不是一種有效的方法。如何從長字符串中生成唯一值以用作表鍵?
所以我想過要減小路徑的大小。 Object.GetHashCode()看起來不錯,特別是當它返回一個int
。
var key = path.GetHashCode();
但它被寫入在文件中:
的哈希代碼是用於是基於哈希表中 集合高效地插入和查找。散列碼不是 永久值。出於此原因:
- 不要序列化哈希碼值或將它們存儲在數據庫中。
- 不要使用哈希代碼作爲從鍵控集合中檢索對象的鍵。
那麼如何縮短路徑字符串以便在DataBase中用作表鍵?
爲什麼不只是使用'Guid'? – 2014-10-29 15:32:17
此表中的數據類型是什麼?它需要與其他表有關係嗎? – juharr 2014-10-29 15:33:12
@BenRobinson我正在使用SQLite,並沒有那麼快。其他表也取決於文件路徑,所以我想通過使用路徑作爲密鑰來減少訪問數據庫的次數 – user3293835 2014-10-29 15:35:39