oj項目后端分析

1.菜單管理

????????我們菜單管理有菜單表(sys_menu),還有用戶角色表(sys_role),菜單表是用于管理我們用戶所擁有的權限,不同的用戶所看到的頁面是不一樣的,由于一些用戶他能夠看到題庫管理和考題管理,還有一些用戶看不到,并且就算能夠看到題庫管理和考題管理,它們里面所能看到的功能也是不一樣的,有一些用戶他有增加和刪除的功能,有一些用戶就只有查看的功能。

????????但如果我們管理員一個一個給用戶權限的話會顯得非常繁瑣,所以我們還有一個角色菜單管理表(sys_role_2_menu),我們在這個關聯表中創建用戶角色表中的對應權限,我們擁有多選權限這個功能,在右側中,只要勾選上我們想要給用戶的權限,我們就在對應表中將它所對應的權限打鉤,在數據庫中我們就會將我們所選的權限id賦值為1,而當我們在使用這個用戶組的時候,自動讀取這個關聯表,里面為1的內容就代表我們該用戶所擁有的權限

2.內容管理

????????在內容管理中,我們擁有分類管理這個功能,使用的是分類表(category)我們通過我們表中的sort字段來管理分類的順序,通過type字段來判斷是什么分類類型,有考題分類和問題分類兩個分類,這兩個分類的話是為了方便我們后面的八股文管理和題庫管理進行劃分

? ? ? ? 在八股文管理中我們的數據存在八股文表(question_info)中,我們的新增問題是先獲取我們的分類管理中的八股文分類的具體分類,我們通過difficulty_level字段來決定題目的難度,我們的難度星級回顯為數字,而我們的上傳圖片使用的就是基本的io流上傳。我們在內容管理中都有批量導入功能,我們是通過io流讀取excel表格來實現的,我們將excel中的第二行讀取出來放入數組中,我們在縱向讀取數據整合后存入數據庫中就實現了我們的批量導入功能。我們可以在詳情頁中切換上一頁和下一頁的功能,我們通過獲取question_id的數據來判斷是否有上或下一頁,具體是我們要下一頁就獲取當前的<question_id的數據后取第一條就行了,上一頁就反著來

? ? ? ? 我們題庫管理跟八股文管理大體一致,數據存在題庫表中(exam_question),唯一不同的是我們的題庫表中還有對應題目的題目答案表(exam_question_item)

? ? ? ? 對于我們的經驗分享中我們實現大體跟我們上面的是一樣的

2.首頁

? ? ? ? 我們的首頁就是先從現在時間往前推一個星期,然后從后端獲取我們要的數據傳到前端就行了

3.app

? ? ? ? 我們的app跟內容管理差不多,但輪播圖和問題反饋還是可以講的。我們輪播圖是先獲取他主體的id,而后我們在app端中我們就可以回顯出我們的圖片,我們點擊后會通過我們提供的主體的id查詢數據庫就可以找到我們的內容,在用戶反饋中我們的實現原理是我們的用戶提交了一個反饋,我們管理員回復是獲取了用戶反饋內容的id作為父id,用戶再回復也是獲取一開始的id,我們在后端中查我們的用戶反饋只要通過id查該id下的字id回顯到頁面中就行了

4.app頁面

? ? ? ? 我們在在線考試中先需要兩個表,一個是用戶考試表(app_exam)和考試問題表(exam_question_item),我們的用戶考試表是我們用戶的考試信息的,我們判斷用戶是否考試結束等,而我們的考試問題表是獲取我們問題的,我們先獲取是哪個用戶的考試,我們在用戶選擇的分類下隨機選50道題,而后我們獲取用戶選擇的答案跟我們的正確答案進行比較,我們通過answer_result字段來獲取是否正確,如果錯了我們的值就為2,為1表示正確,在我們下次進行考試時我們將排除掉我們用戶選擇正確的答案

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/16042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16042.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Anaconda Anaconda支持什么編程語言的環境配置

Anaconda是一個數據科學和機器學習的開發環境&#xff0c;它支持多種編程語言的環境配置&#xff0c;包括&#xff1a; Python&#xff1a;Anaconda默認安裝了Python和必需的Python庫&#xff0c;可以方便地進行Python編程和數據分析。 R&#xff1a;Anaconda也可以配置R語言環…

Aws EC2 + Aws Cli + Terraform

1 什么是 Terraform&#xff1f; Terraform 是由 HashiCorp 創建的“基礎架構即代碼”(Infrastructure-as-Code&#xff0c;IaC)開源工具。Terraform 的配置語言是 HashiCorp Configuration Language&#xff08;HCL&#xff09;&#xff0c;用來替代更加冗長的 JSON 和 XML 等…

SpringBoot注解--09--idea創建spring boot項目,java版本只能選擇17和21

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 idea創建spring boot項目1.問題描述2.原因3.解決方法方案一&#xff1a;升級JDK版本至17或更高方案二&#xff1a;替換Spring初始化的源https://start.aliyun.com i…

實時計算及異構計算隨筆筆記

3、異構計算的典型應用 異構計算并不神秘&#xff0c;目前已滲透各個領域&#xff0c;不僅是PC領域&#xff0c;也包括了手持移動設備領域、行業領域&#xff0c;甚至是云計算、分布式計算領域。事實上&#xff0c;異構計算至少在應用端&#xff08;前臺&#xff09;并不像它的…

Android 運行時權限

Android 6.0 及以后&#xff0c;如果你的應用需要用到一些危險權限&#xff0c;那么這些權限必須手動申請。 具體危險權限有哪些&#xff0c;可以通過下面這篇文章自行查詢到&#xff1a; 使用 adb 命令列出設備所有危險權限 例如&#xff0c;讀寫文件就涉及到兩個危險權限&am…

Unity 中獲取調用者方法名

介紹 在 Unity 開發中&#xff0c;有時需要在代碼中獲取當前方法的調用者方法名&#xff0c;以便進行日志記錄、調試等操作。本教程將詳細介紹如何使用 C# 中的 StackTrace 類來實現這一功能&#xff0c;并將其封裝成一個便捷的工具類&#xff0c;以方便在項目中的任何地方…

ES的安裝以及配置+ik分詞

環境&#xff1a;windows10、ES&#xff08;8.13.3&#xff09;、Kibana&#xff08;8.13.3&#xff09;、Logstash&#xff08;8.13.3&#xff09;、ik&#xff08;8.13.3&#xff09; 1.下載安裝ES Download Elasticsearch | ElasticDownload Elasticsearch or the complet…

AI預測體彩排3采取888=3策略+和值012路一縮定乾坤測試5月26日預測第2彈

今天繼續基于8883的大底進行測試&#xff0c;昨天的預測已成功命中&#xff01;今天繼續測試&#xff0c;按照排三前面的規律&#xff0c;感覺要出對子了&#xff0c;所以本次預測不再殺對子&#xff0c;將采用殺一個和尾來代替。好了&#xff0c;直接上結果吧~ 首先&#xff0…

mongoengine,一個非常實用的 Python 庫!

更多Python學習內容&#xff1a;ipengtao.com 大家好&#xff0c;今天為大家分享一個超酷的 Python 庫 - mongoengine。 Github地址&#xff1a;https://github.com/MongoEngine/mongoengine 在現代應用程序開發中&#xff0c;NoSQL數據庫因其靈活性和高性能而廣受歡迎。MongoD…

軟件需求規范說明模板

每個軟件開發組織都會為自己的項目選用一個或多個標準的軟件需求規范說明模板。有許多軟件需求規范說明模板可以使用(例如ISO/IEC/IEEE2011;Robertson and Robertson2013)。如果你的組織要處理各種類型或規模的項目&#xff0c;例如新的大型系統開發或是對現有系統進行微調&…

concurrency 并行編程

Goroutine go語言的魅力所在&#xff0c;高并發。 線程是操作系統調度的一種執行路徑&#xff0c;用于在處理器執行我們在函數中編寫的代碼。一個進程從一個線程開始&#xff0c;即主線程&#xff0c;當該線程終止時&#xff0c;進程終止。這是因為主線程是應用程序的原點。然后…

紅黑樹封裝map和set

紅黑樹源代碼 我們將由下列的KV模型紅黑樹來模擬封裝STL庫中的map和set 注意&#xff1a;為了實現封裝map和set&#xff0c;我們需要對下列源碼進行優化。 #pragma once #include<iostream> using namespace std; //枚舉類型的顏色分類 enum Colour {RED,BLACK };//定…

【Python爬蟲】圖片驗證碼的處理

什么是圖片驗證碼&#xff1f; 驗證碼&#xff08;CAPTCHA&#xff09;是&#xff02;Completely Automated Public Turing test to tell Computers and HumansApart”&#xff08;全自動區分計算機和人類的圖靈測試&#xff09;的縮寫&#xff0c;是一種區分用戶是計算機還是人…

Markdown魔法手冊:解鎖高效寫作的新技能

邊使用邊更新0.0... 文章目錄 一、如何在Markdown中插入表情&#xff1f;二、文字樣式設置1.文本顏色設置2.文本字號設置3.文本字體設置4. 實戰演練5.黃色高亮 一、如何在Markdown中插入表情&#xff1f; 在Markdown中插入表情&#xff08;emoji&#xff09;的方法取決于你使用…

如何提升百度小程序的收錄?百度小程序如何做優化?

? 如何通過百度小程序獲得更多的自然流量&#xff1f;這是做百度小程序肯定要考慮的問題&#xff0c;做百度小程序的目的就是想借助百度生態&#xff0c;做相應的關鍵詞給自己的小程序引流&#xff0c;如何把流量給做起來呢&#xff0c;接下來我從不同的方面給大家進行分析講解…

最新ChatGpt Desktop for Mac 安裝使用教程

1. 下載地址 請點擊鏈接下載 ChatGPT Desktop for MacOS 2. 使用要求 MacOS 版本 14需要時M1芯片的&#xff0c;如果你是因特爾的暫時還還不行 就算下載了也會出現下面的異常 3. 獲取權限資格 目前 ChatGPT MacOS Desktop還不是全量開放的, 如果你沒有收到通知說明你還沒…

在 Dockerfile 中遇到了連接到 pypi.org 超時的問題

看起來你在 Dockerfile 中遇到了連接到 pypi.org 超時的問題。這可能是由于網絡連接問題導致的。你可以嘗試以下方法解決這個問題&#xff1a; 1. 更換鏡像源&#xff1a; 有時候 pypi.org 的訪問會受到地理位置或網絡環境的影響&#xff0c;你可以考慮使用國內的鏡像源來代…

Oracle的ROWID解析

目錄 一、ROWID基礎概念二、ROWID的類型三、ROWID的用途四、注意事項五、管理與監控 Oracle的ROWID是一個非常核心的概念&#xff0c;它代表了一行數據在數據庫中的物理位置標識。 一、ROWID基礎概念 唯一性與不變性&#xff1a;ROWID是每行數據的唯一標識符&#xff0c;它在行…

【Spark】調整hive表在HDFS存的每個文件的大小

配置參數&#xff1a; spark.hadoop.hive.exec.orc.default.stripe.size78643200 spark.hadoop.orc.stripe.size78643200 spark.hadoopRDD.targetBytesInPartition78643200 spark.hadoop.hive.exec.dynamic.partition.modenonstrict spark.sql.sources.partitionOverwriteMode…