0
A
回答
0
在大多数数据库中不可能有条件数据库索引,例如MySQL的。
如果您绝对必须保证唯一性,最好的选择可能是将已删除的帖子单独列出。主表上有唯一索引,但不包含已删除记录的表。您最终将得到一个较小的帖子表和更简单的编码 - 不再需要在任何查询中过滤掉已删除的帖子。
你有没有考虑过如果你取消删除一个帖子会发生什么 - 两个帖子可以有相同的标题?
一些其他的选项有:
- 变化,当你删除帖子的标题,例如添加一个时间戳。
- 如果可以找到2个或更多相同标题的实例,则在保存模型后引发异常。
- 保存之前锁定整个表格(悲观锁定)。
- 只是希望它的工作原理(你多久将会有两个人张贴在准确的同一时间同一个标题?)
0
有可能在PostgreSQL的
add_index :table_name, :columns, unique: true, where: "(deleted_at IS NULL)"
相关问题
- 1. 如何添加一个有条件的唯一索引PostgreSQL的
- 2. 如何向索引添加索引
- 3. 有条件的root_url(索引)
- 4. 有条件目录索引
- 5. 如何将条目添加到列表中的特定索引?
- 6. 如何添加ngIf条件
- 7. 如何搜索条添加到Exoplayer exo_playback_control_view.xml
- 8. 如何向现有条件表达式添加条件?
- 9. 如何在引导表中添加每页搜索,分页和没有条目
- 10. 有条件地添加条件
- 11. 如何添加索引到CitusDB的cstore_fdw?
- 12. 如何在外键上添加索引?
- 13. 如何使用Knex.js添加GIN索引
- 14. 如何添加索引到@ManyToOne关系
- 15. mysql索引添加
- 16. 添加条件Laravel有()
- 17. 熊猫:添加有条件
- 18. FULLTEXT索引是否加速LIKE条件?
- 19. 添加条件语句引擎
- 20. 有条件的索引与Numpy ndarray
- 21. SolrNet - 添加到现有的索引
- 22. 修改现有的索引或添加一个新的索引
- 23. 如何将条件添加到思维-Sphinx搜索查询中?
- 24. 我如何添加,如果条件
- 25. 如何有条件地使用MySQL创建索引?
- 26. 如何将elasticsearch的所有索引自动添加到kibana?
- 27. 如何将文档添加到elasticsearch中的现有索引
- 28. 如何将索引添加到现有表中?
- 29. 在postgres中,如何向现有表添加索引?
- 30. 如何在Volt上为现有阵列添加新索引?