[英]MySQL database design. New index id
我有一個應用,其中有已發布的內容和正在審查的內容。 我將它們維護在單獨的表中。
兩種內容都可以進行投票和注釋,當發布受審閱的內容時,我將其插入到已發布的表格中,但是不會保存投票和評論,因為它們都分散在不同的表格中。
表格:已發布,已發布投票,已發布評論,評論,正在評論投票,正在評論
我想保留投票和評論,問題是新帖子必須具有新的自動增量ID,因為我按ID順序顯示內容,否則,例如如果我按使文件排序的時間戳順序對出版物進行排序,則不是一個選項。
因此,我將加入所有表,只有3個,發布內容后,我可以在表上進行新插入或更新我認為更糟的ID。 但是問題是我必須將所有投票和評論更新為新發布的ID,在某些情況下,可能會有數千張投票,並且此刻必須進行更新,我想我可以異步進行並延遲發布。 但是我也不認為這是一個很好的解決方案。
有什么想法嗎?
PD:理想情況下,我希望將新出版物放在表或索引的末尾,而不更改id,並且當我選擇出版物時,無論其數值如何,都應按其在表或索引上的物理位置從底部開始對其進行排序。索引值,但據我所知顯然這是不可能的。
將未發布內容保留在單獨的表中的原因是什么?
您可以在同一表中擁有所有內容,並在子表中擁有各自的投票和評論。 根據“類型”或“狀態”列(發布/審閱)區分內容。
Content(Id, Title, Text, Status, ...)
Votes(Id, ContentId, ...)
Comments(Id, ContentId, ...)
新插入內容時,其狀態為“正在審閱”。 然后,可以通過將“狀態”更改為“已發布”來發布內容。 此外,當內容的狀態更改為“已發布”時,您可以保留一個時間戳以進行保存。
它需要在系統中更改設計級別,但是越早越好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.