簡體   English   中英

MySQL數據庫設計。 新索引編號

[英]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.

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