開發日記 2020 12 1 複雜排序

2021-10-11 02:10:39 字數 1439 閱讀 4190

最近在乙個專案裡有個任務。任務裡涉及到兩張表 ------賬號表(user),使用者審核記錄表(usercheck)。

任務要求:父賬號的排序 要按照父賬號下屬的子賬號的最新審核記錄為 「等待審核」,如果都是 「等待審核」 就再按審核時間排序。

任務裡涉及到兩張表 ------賬號表(user),使用者審核記錄表(usercheck)。下面是會用到的字段

user表–user表裡儲存著父級賬號和子級賬號。

欄位名資料型別

備註userid 賬號id

int主鍵id

isdelete 刪除標誌

bit–

parentuserid 所屬父賬號

int–

usercheck表–usercheck表裡儲存 user 的審核記錄。

欄位名資料型別

備註usercheckid

int主鍵

userid 賬號id

int外來鍵id,關鍵關聯 user 表

afterischeck 審核後狀態

tinyint

0為未審核

checktime 審核時間

datetime

–一開始 是想用 orderby的乙個很少用的語法來寫,自寫乙個比較器。

orderby

<

tsource

,tkey

>

(this iqueryable source, expression

> keyselector, icomparer comparer)

;

但這種方法需要多次查尋資料庫,次數多了,**就崩了,無耐放棄。

最後,在 user 的 model 那加了兩屬性,lastcheckstatus 和 lastchecktime 。

用兩屬性直接先去拿到最新的審核狀態和最新審核時間,然後控制器裡再進行orderbydescending 處理

//user model 

public

partial

class user

}// 獲取最新審核狀態

public

int lastcheckstatus

}//獲取最新審核時間

public

datetime lastchecktime

}}

控制器

public

actionresult

user

(vmodeluser t)

)//這裡再按最近審核時間排

.thenbydescending

(u =

>);

...return

view(.

..);

}

第一次寫文,各方面沒經驗,大家手下留情啊!!!!^ _ ^

開心開心開心極了 2020 12 1日記

今天也沒做什麼事情,但是晚上此刻寫日記的我,心情就是不錯。記錄一下今天發生了什麼吧。早上去上數電的最後一節課,剛上課,老師說我們是二月一號放寒假,那你們想結課了就早一點把這門課考了還是等到期末啊。他剛說完,大家沒有過多的思考,底下就說了想期末的時候再考。她有點詫異,你們不是不少課都要結課了嘛 我靈機...

排序2 複雜排序

堆排序是一種選擇排序,遍歷後選擇陣列中最大的值放到堆頂,可用陣列實現,最好和最壞和平均複雜度都為o nlogn 不穩定。堆就是一種完全二叉樹,排序特徵是堆頂元素大於子元素 不管子元素之間的排列 完全二叉樹的特徵是層序遍歷等於滿二叉樹的層序遍歷 也就是底層可以沒有右邊的子樹 用陣列來描述堆的定義有大頂...

QT開發日記

1,在使用moc的時候,q object這個巨集不能用在乙個類的定義檔案中,只能在單獨作為乙個類的宣告檔案中用,否則會出現 vtable for x 類名 的出錯提示。如果乙個類只宣告了,而沒有定義,也會出現上述錯誤.這時可以在這個檔案的末尾加上 include moc xx為不要.cpp字尾的檔名...