我正在編寫一個應用程序,用戶可以添加有關書籍,出版商,來源(指向特定書籍的鏈接)等信息。 每個用戶都應該有能力添加或編輯書籍或有關任何書籍(流派,出版商等) 。 當用戶添加或更改有關圖書的信息時,只有主持人不檢查信息的正確性時,此信息纔可用。驗證後,所有用戶都可以獲得信息。
你可以看到我的數據庫模式here。
我應該如何存儲關於用戶貢獻更改的信息?如何存儲有關用戶提供的更改的信息?
0
A
回答
0
您至少有一些基本方法可以使用。
選項1:保持未決在一組平行表的變化 - 在這個選項中,你會或多或少具有相同的表格,你的主要模式複製你的模式,但每個表中增加額外的編輯相關的信息,例如作爲proposed_by,proposed_datetime,approval_status,approved_by等
在這個選項中,你會跟蹤所有提議的變更,他們將被寫入主組表只有當主持人批准他們。您可以在這些並行表格中保留建議更改的歷史記錄,也可以採用已批准和已拒絕的更改,只保留待執行的更改。這將取決於您的業務需求。
選項2:使用狀態標誌跟蹤主表中的掛起更改 - 在此選項中,您可以將選項1的更改跟蹤列本身添加到主表中。您還可以使用status_flag列來指示哪些記錄是正式的,哪些是待處理的更改。如果需要,您也可以設想跟蹤被拒絕的更改。
選擇哪個選項?所有的設計都是關於折衷的。根據您的需求,您可以使用這些選項中的任何一個。第一個選項的問題是您必須複製所有表格,然後在其上添加更改跟蹤列。第二個選項的問題是,您的代碼讀取數據會更復雜,因爲它必須考慮篩選出所有未決的更改(以及如果您跟蹤它們而拒絕更改)。
我是乾淨的代碼風扇。出於這個原因,我可能會傾向於選擇1,但是我不知道你的業務需求,所以你將不得不做出自己的決定。
相關問題
- 1. 如何爲CreateProcess提供用戶信息?
- 2. 更新用戶提交的信息存儲在sql?
- 3. 如何通過信息窗口向用戶提供信息
- 4. 如何在Django中存儲關於用戶的其他信息?
- 5. 如何存儲其他用戶信息?
- 6. 如何存儲其他用戶信息
- 7. 如何存儲用戶認證信息?
- 8. 在Django存儲有關用戶的其他信息
- 9. 存儲有關用戶的信息Spring MVC
- 10. 在Dspace中存儲有關用戶的其他信息
- 11. Bitbucket獲取有關存儲庫所有提交的信息
- 12. 如何在不註冊的情況下存儲有關用戶的信息?
- 13. 如何提取與任何OpenID提供者相關的信息?
- 14. 如何更改存儲庫的用戶?
- 15. 我的所有ViewControllers for iOS如何爲用戶提供用戶登錄信息?
- 16. CGPDFDictionary提供一些有用的信息
- 17. 如何通過FQL獲得有關更多用戶的信息?
- 18. 我如何知道提供的用戶信息?
- 19. 在Shopify中存儲有關客戶的其他信息
- 20. Cassandra中的用戶信息存儲
- 21. 存儲用戶信息的Django
- 22. 如何提供供Django的dumpdata使用的模型依賴關係信息?
- 23. 如何動態存儲有關HTML元素的信息?
- 24. 有關如何正確存儲信息的MySQL和PHP
- 25. 如何獲取有關存儲過程的信息xp_instance_regread
- 26. git在哪裏存儲有關存儲庫的來源信息
- 27. 在登錄時存儲用戶信息供以後使用
- 28. 如何更改UAC提示信息?
- 29. 如何更改svn提交信息