Mysql

只有在管理員批准後才將數據插入/更新到關係數據庫表中 - 如何處理?

  • September 27, 2020

我正在建構一個包含 21 個表的關係數據庫,該數據庫通過 PHP 連接到我的網站應用程序。

該網站具有搜尋功能,允許使用者搜尋該數據庫。此外,使用者可以通過特殊表格輸入新數據。因為這些條目必須經過管理員的嚴格控制,所以我想做某種審批系統,只有管理員可以使用,它可以在使用者輸入出現在搜尋結果之前看到它,並允許它,返回給使用者製作更改或刪除它。

我的問題是,從關係數據庫設計的角度來看,這種情況的方法是什麼,最佳實踐是什麼?

PS我知道我的問題可能很廣泛,但我無法通過搜尋網際網路或本網站上的其他文章找到答案。

我會專門為管理員和他的批准建構一個 UI。它將顯示正在等待批准的內容。他會點擊

$$ Approve $$或者$$ Reject $$(等等?)每個人。這可能會通過 AJAX 到後端進行處理。 在數據庫中將有兩組表。它們的表數和列數不一定相同。

一組將是完全批准的數據,任何允許進入系統的人都可以查看(再次通過某些 UI)。

另一組只針對管理員:

  • 待處理的東西通過任何有意義的 ETL 機制被放入這些表中。
  • 來自管理員的 AJAX 呼叫會導致一行
  • 被刪除(或標記為拒絕),或
  • 複製到另一組表(“已批准”)並刪除,或
  • 留在那裡作進一步思考,或
  • 任何。

也許管理員表中的“行”可能會被非規範化。然後,當/如果將其複製到批准的表中時,就會發生規範化。也就是說,您應該決定在哪裡進行標準化比較方便:在管理員批准之前還是之後。

尚未批准的行是否指向已批准區域中的規範化表是一個方便的問題。我對“規範化”一個值沒有問題,然後刪除它的連結。這可能會在規範化表中留下未引用的項目,但這有時是為了其他地方的便利而付出的小代價。(不,我認為沒有FOREIGN KEYs任何用處,因為沒有與 . 相關的“引用計數”功能ON DELETE CASCADE。)

引用自:https://dba.stackexchange.com/questions/221568