mysql - 類似QQ的好友關系表是怎么設計的?
問題描述
請問一下類似QQ的好友關系表是怎么設計的?難道只是簡單的id,userId,friendId嗎?
問題解答
回答1:應該還有一個分組字段回答2:其實沒有必要把事情想得太復雜了,按照需求慢慢遞進就可以了。
這是我做關注功能的表結構,可以參考一下。
UserRelationship: type: object properties: id:type: integerdescription: Id user_id:type: integerdescription: 用戶Id target_user_id:type: integerdescription: 目標用戶Id回答3:
非關系型數據庫
回答4:我這邊做設計的時候,是考慮了群組的功能的,所以將兩個人的好友關系也轉換為了群組
整個應該會出現三張表
一個是用戶表一個是群組表一個是用戶-群組對應關系表
通過三張表來確定的
回答5:據我所知,微博的關注就是這么設計的
回答6:之前看過一個面試題,就是表設計問題,好友關系表如何設計,在用戶表用一個字段以逗號分隔存儲還是雙表關聯存儲的,貌似兩種都可行
回答7:這樣夠用就可以了
回答8:不過查詢起來也是個問題 redis不是很適合干這個事情嘛
回答9:或許可以再加一個是否雙向好友的標志字段
回答10:應該是多對多關系。1個用戶可以有多個好友。也可以被多個用戶加為好友。多對多關系,在關系型數據庫里面,一般使用中間表來實現。這時候中間表一般只存用戶ID和好友ID。但是便于業務實現,可以在中間表加上是否驗證通過、好友分組ID、排序編號等、這個多對多中間表和一般多對多不同的地方在于,這個的關聯表是自身。也就是user表對user表的多對多關聯。
相關文章:
1. python - 為什么match匹配出來的結果是<_sre.SRE_Match object; span=(0, 54), match=’’>2. mysql優化 - mysql 一張表如果不能確保字段列長度一致,是不是就不需要用到char。3. Python處理Dict生成json4. 請教一個mysql去重取最新記錄5. python - 請問這兩個地方是為什么呢?6. python - 用os.environ能獲取到的環境變量,在os.environ.getenv卻得不到,這是為什么?7. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量8. python中怎么對列表以區間進行統計?9. php - 有關sql語句反向LIKE的處理10. 大家都用什么工具管理mysql數據庫?
