三級返利系統的資料結構?修改和查詢問題
需要做一個三級返利的項目,需求是能查看某人的一級、二級和三級用戶並可以更改這個人的上級,數據結構是開始是這樣設計的:
uid 1 2 3
用戶id 所屬上級所屬上上級所屬上上級
1 0 0 0
2 1 0 0
3 2 1 0
4 3 2 1
5 4 3 2
6 3 2 1
用戶1的上級為平台,上三級都是0, 用戶6的上級是用戶3,上上級是2,上上上級是1,這樣的結構是方便查詢了,但是修改默認的上級的話,如果這個人的下級有10萬人,那10萬人的上上級也需要修改,那修改量就太大了。
如果改成:
uid 1
用戶id 所屬上級
1 0
2 1
3 2
4 3
5 4
6 3 查詢
那那人的所有第二級用戶,再查詢所有第二級用戶的所有下級,這樣的查詢量也是很大。
想諮詢大家有什麼摺中的辦法嗎?
回覆內容:
需要做一個三級返利的項目,需求是能查看某人的一級、二級和三級用戶並可以更改這個人的上級,數據結構是開始是這樣設計的:
uid 1 2 3
用戶id 所屬上級所屬上上級所屬上上級
1 0 0 0
2 1 0 0
3 2 1 0
4 3 2 1
5 4 3 2
6 3 2 1
用戶1的上級為平台,上三級都是0, 用戶6的上級是用戶3,上上級是2,上上上級是1,這樣的結構是方便查詢了,但是修改默認的上級的話,如果這個人的下級有10萬人,那10萬人的上上級也需要修改,那修改量就太大了。
如果改成:
uid 1
用戶id 所屬上級
1 0
2 1
3 2
4 3
5 4
6 3 查詢
那那人的所有第二級用戶,再查詢所有第二級用戶的所有下級,這樣的查詢量也是很大。
想諮詢大家有什麼摺中的辦法嗎?
mysql 外鍵+遞歸
建議採用第二種方案,只保留uid和pid兩個字段,這樣從設計上支持任意級別的關係,如果有更新的話修改的記錄數也會比較少。
多層次查詢,可以透過各資料庫的遞迴查詢語法來簡化實作方式,如oracle中的CONNECT BY語句,或SQLSQLER的CTE等。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數據目錄;4.驗證卸載是否徹底。

MySQL函數可用於數據處理和計算。 1.基本用法包括字符串處理、日期計算和數學運算。 2.高級用法涉及結合多個函數實現複雜操作。 3.性能優化需避免在WHERE子句中使用函數,並使用GROUPBY和臨時表。

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显著提升数据库操作效率。

Composer是PHP的依賴管理工具,通過composer.json文件管理項目依賴。 1)解析composer.json獲取依賴信息;2)解析依賴關係形成依賴樹;3)從Packagist下載並安裝依賴到vendor目錄;4)生成composer.lock文件鎖定依賴版本,確保團隊一致性和項目可維護性。

在macOS上安裝MySQL可以通過以下步驟實現:1.安裝Homebrew,使用命令/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。 2.更新Homebrew,使用brewupdate。 3.安裝MySQL,使用brewinstallmysql。 4.啟動MySQL服務,使用brewservicesstartmysql。安裝後,可通過mysql-u

使用EXPLAIN命令可以分析MySQL查詢的執行計劃。 1.EXPLAIN命令顯示查詢的執行計劃,幫助找出性能瓶頸。 2.執行計劃包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等字段。 3.根據執行計劃,可以通過添加索引、避免全表掃描、優化JOIN操作和使用覆蓋索引來優化查詢。
