簡體   English   中英

帶有業務邏輯的復雜SQL查詢

[英]Complex SQL Query with Business Logic

我陷入了需要執行一些業務邏輯的復雜查詢。 以下是我所擁有的表(為便於閱讀,我省略了多余的列)

Team - TeamID, TeamName
TeamMember - MemberID, TeamID, MemberName
Question - QuestionID, CategoryID, DifficultyLevelID, Question
Category - CategoryID, CategoryName
DifficultyLevel - DifficultyLevelID, DifficultyLevelName
QuestionOffered - QuestionOfferedID, QuestionID, OfferedTo

現在,業務邏輯是,我有10個類別(例如科學,歷史,地理等)和3個難度級別(即簡單,中等,困難)。 每個類別和難度級別都有5個問題。

因此,每個類別需要3 x 5 = 15個問題(5個簡單,5個中等,5個困難)。 總計15 x 10(類別)= 150個問題。

現在,我希望每次有用戶進入時,我都會檢查是否已經提供了該類別和難度級別下的所有5個問題(可以從QuestionsOffered表中進行跟蹤),如果是,那么我將不顯示該類別和難度級別再次。

因此,假設我是第一次來,我將獲得所有類別,然后選擇一個類別,我將獲得所有難度級別。 現在,我選擇“簡單”並繼續。 因此,在每個類別下,我可以選擇一個特定的難度級別5次,然后在完成所有5項簡易難度設置后,我將獲得類別和其他難度級別(即中級和困難級別)。

因此,以這種方式,如果我在同一個類別下完成了所有5個簡單,5個中級和5個困難問題,該類別本身將不會顯示。

當然,我可以在用於填充類別的編程中實現此邏輯,但最終會產生許多行代碼。

那么,有什么方法可以在SQL中檢查此業務邏輯嗎? 這樣我就可以填充數據了?

內部將您的問題,類別和級別連接在一起,然后左鍵連接已提供的問題。 過濾提供的問題表中任何字段為空的位置,並且您將得到未回答問題的列表? 也許?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM