我正在開發一個簡單的社交應用程式,并有一個user_friend表,其中包含user_id和friend_id作為其復合鍵。在前端,當前用戶可以查看其他人的個人資料,然后單擊添加朋友按鈕更新user_friend表格。例如,id 為 100 的用戶可以查看 id 為 9 和 15 的用戶的個人資料,然后單擊添加按鈕,然后user_friend表更新為
user_id: 100, friend_id 9
和
user_id: 100, friend_id 15
處理此類請求的最佳方法是什么?我正在考慮創建一個名為的新表request_table,其中包含requester具有用戶 ID 的accepter列、具有朋友 ID 的status列和具有已接受和待處理的列。因此,當請求者單擊添加朋友按鈕時,狀態會更新為已接受,然后更新user_friend表以反映更改(通過在上面的示例中添加新行 user_id: 9,friend_id 100)。請建議是否有更清潔或更好的方法來做到這一點。
uj5u.com熱心網友回復:
我會讓它比你想象的要簡單得多......你當前的表格看起來像:
--------------------------------
| user_id | friend_id |
-------------- -=---------------
| 100 | 15 |
-------------- -----------------
| 100 | 9 |
-------------- -----------------
添加兩列 ..requested和accepted:
-------------------------------- ----------------- ----------------
| user_id | friend_id | requested | accepted |
-------------- -=--------------- ----------------- ----------------
| 100 | 15 | 1 | 0 |
-------------- ----------------- ----------------- ----------------
| 100 | 9 | 1 | 1 |
-------------- ----------------- ----------------- ----------------
雖然人們可以假設如果條目在表requested中將始終是1- 所以實際上你只需要添加accepted列..但是你得到了基本的想法/原則。
請注意,如果您需要更多狀態而不僅僅是“已接受”,例如 - 說“已阻止”或“已暫停”等,您可以創建第三個表并以關系方式使用。
-----------------------------------------------------------------
| user_firends (uf_id for indexing FASTER) |
-------------------------------- ----------------- --------------
| uf_id | user_id | friend_id | status |
-------------- -=--------------- ----------------- --------------
| 1 | 100 | 9 | 1 |
-------------- ----------------- ----------------- --------------
| 2 | 100 | 15 | 2 |
-------------- ----------------- ----------------- --------------
---------------------------------------
| statuses_table |
------------------ --------------------
| status_id | status |
------------------ --------------------
| 1 | requested |
------------------ --------------------
| 2 | accepted |
------------------ --------------------
| 3 | rejected |
------------------ --------------------
| 4 | blocked |
------------------ --------------------
- 許多(用戶)到許多(朋友)使用
users_friends“資料透視表”AND - 許多(朋友)到單身(狀態),在列中直接插入狀態
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342401.html
上一篇:SQL中兩個表之間的條件更新
