以多對多關係更新
回答
有很多方法對皮膚這隻貓,一些技巧,我能想到的:
1.刪除所有角色和重新插入
這是一個直接的方法。刪除用戶的所有角色並重新插入。通常用戶只屬於少數角色(小於10)。另外,很有可能沒有其他外鍵鏈接到這個多對多表。
2的變化跟蹤和僅適用變更
這是更多的工作,但更高效,哪怕只是稍微在這種情況下。像ORMs
這樣的工具可以輕鬆跟蹤和應用這些類型的更改。
3.用戶作出的改變
在這種情況下,我認爲這是可以接受的應用DB變化最終用戶關聯用戶角色應用更改。也許這是一個本地數據庫,每筆交易都是短暫的。但我想這是一個不太可能的情況。
我不認爲這種情況下有任何錯誤刪除和重新插入。
如果某個人刪除角色,爲什麼不通過userID
和roleID
並刪除該記錄? 爲什麼要刪除特定userID
的所有角色ID,然後再次讀取它們?
從上面我的意見,傳遞兩個參數: UserID
和RoleID
然後你就可以刪除/提取單個元組。
ui設置角色的方式是通過複選框設置的,您可以在其中檢查或取消選中多個 – chobo 2012-02-17 20:27:49
@chobo - 發送多個參數,你可以使用'IN'等。無論哪種方式,如果不存在太多的角色,你可以簡單地刪除所有並只讀取已選中的角色。 – JonH 2012-02-17 20:29:29
@JonH:笨拙的嘮叨,對嗎? – micahhoover 2016-10-04 12:07:59
- 1. 更新多對多關係
- 2. 更新多對多關係
- 3. 更新多對多關係
- 4. 更新多個多對多關係
- 5. 更新對象多對多的關係
- 6. 更新一對多關係
- 7. Linq更新多對多關係
- 8. PHP更新MYSQL多對多關係
- 9. Doctrine2更新許多一對多關係
- 10. 更新與Rails的多對多關係
- 11. 更新多對多有關係IDS
- 12. 更新數據透視表,以備多對多關係laravel4
- 13. CodeIgniter/Datamapper - 更新一對多關係
- 14. Laravel更新一對多關係
- 15. 更新多對一的關係
- 16. Django:一對多的關係更新
- 17. 解析一對多關係更新
- 18. 更新實體一對多的關係
- 19. MVC:更新一對多的關係
- 20. 自動更新一對多關係
- 21. 休眠 - 更新多對多關係的對象
- 22. 多對多關係
- 23. 多對多關係
- 24. 多對多關係
- 25. 多對多關係
- 26. 多對多關係
- 27. 多對多關係
- 28. 多對多關係
- 29. 多對多關係
- 30. PetaPoco和多對一,一對多以及多對多關係
多數民衆贊成我們爲什麼有參數,你傳遞的用戶ID和角色ID作爲參數,然後你做:'DELETE FROM MyTable WHERE userID = @UserID AND roleID = @ RoleID' – JonH 2012-02-17 20:16:41
這實際上是一個比它似乎更好的問題表面。如果您有一個用戶界面,可讓您編輯表格的多邊,並在用戶點擊保存時以批處理模式進行更新(而不是一次只進行一次),則可能會有其他用戶修改您下方的表格,例如,當用戶正在UI中編輯時,確定另一個用戶是否添加了角色 – JohnFx 2012-02-17 20:21:12