我需要强制数据库表中的条目包含唯一的关键字集,否则应该拒绝该条目。顺序并不重要,只是每一组关键字都必须是唯一的。例如:
以数据库中现有的示例记录为例:
记录
--满足
--关键词:[‘苹果’、‘梨’、‘橙’]
一个关键字数组为[apple]、[pear]、[orange]的新记录
否认
一个关键字数组为[apple]、[orange]、[pear]的新记录
否认
一个关键字数组为[apple]、[pear]、[orange]、[grape]的新记录
认可的
作为一种解决方案,有人建议我对关键字集(按词汇顺序)进行散列,并将该散列用作数据库条目的唯一键。
很好的建议,但有两个问题:
在这种情况下,我如何处理区分大小写的问题?
如果我决定使用,比如说SHA-1,来散列,相信碰撞已经接近不可能了,这是现实的吗
大量关键字
(最多30个)并使用该散列作为数据库条目的唯一密钥,而无需检查副本?
我们使用firebase作为后端,谷歌对每个文档的读取收取费用,因此,在插入之前必须检查重复项是不可接受的,也是不可扩展的解决方案,因为如果我们必须在每次插入记录之前进行检查(如果我的表包含数百万条记录),那么这样的查询将花费我们一大笔钱。