0
A
回答
0
在大多數數據庫中不可能有條件數據庫索引,例如MySQL的。
如果您絕對必須保證唯一性,最好的選擇可能是將已刪除的帖子單獨列出。主表上有唯一索引,但不包含已刪除記錄的表。您最終將得到一個較小的帖子表和更簡單的編碼 - 不再需要在任何查詢中過濾掉已刪除的帖子。
你有沒有考慮過如果你取消刪除一個帖子會發生什麼 - 兩個帖子可以有相同的標題?
一些其他的選項有:
- 變化,當你刪除帖子的標題,例如添加一個時間戳。
- 如果可以找到2個或更多相同標題的實例,則在保存模型後引發異常。
- 保存之前鎖定整個表格(悲觀鎖定)。
- 只是希望它的工作原理(你多久將會有兩個人張貼在準確的同一時間同一個標題?)
0
有可能在PostgreSQL的
add_index :table_name, :columns, unique: true, where: "(deleted_at IS NULL)"
相關問題
- 1. 如何添加一個有條件的唯一索引PostgreSQL的
- 2. 如何向索引添加索引
- 3. 如何在基於CodeIgniter的搜索引擎上添加條件
- 4. 如何將「where」條件添加到Zend Lucene搜索引擎?
- 5. Grails的檢索插件添加到索引條件
- 6. 如何添加索引並重新索引到現有屬性?
- 7. 有條件的root_url(索引)
- 8. 有條件目錄索引
- 9. 如何有條件地添加className?
- 10. 如何將條目添加到列表中的特定索引?
- 11. 如何添加ngIf條件
- 12. 如何搜索條添加到Exoplayer exo_playback_control_view.xml
- 13. 如何向現有條件表達式添加條件?
- 14. 如何有條件地在ElasticSearch中添加多個條件?
- 15. 如何在引導表中添加每頁搜索,分頁和沒有條目
- 16. 有條件地添加條件
- 17. 如何用條件導入索引
- 18. 如何將索引列添加到Datatable?
- 19. 如何添加索引到@ManyToOne關係
- 20. 如何添加索引到Rails DB?
- 21. 如何使用Knex.js添加GIN索引
- 22. 如何在外鍵上添加索引?
- 23. 如何爲MongoDB集合添加索引?
- 24. 如何添加索引到CitusDB的cstore_fdw?
- 25. 如何添加索引到FOSUserBundle:用戶?
- 26. mysql索引添加
- 27. 添加SQL索引
- 28. 添加條件Laravel有()
- 29. 添加數字有條件
- 30. 熊貓:添加有條件