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上爲現有陣列添加新索引?