2011-11-21 37 views
1

我正在爲我製作的iOS應用製作Web應用程序。我想管理我所做的應用程序中的問題,但現在我也希望用戶有機會向Web應用程序提交問題。但是,用戶的問題不能僅僅添加到列表中,因爲我想首先批准它是一個有效的問題。如何製作簡單的「批准或拒絕」系統

我想作以下的:

  • 一個頁面,用戶可以註冊並提交問題。
  • 這是由一個單獨的後臺bean(不同於我在管理面板中使用的)處理的
  • 問題是如此傳遞給EJB,它再次持續存在問題。
  • 然後我有一個用戶提交的問題列表,我可以選擇「批准」,這意味着我將有oppertunity將問題保留在批准的問題表中。

通過這種方法,我必須做的問題表(以及答案和類別表)的副本,並有一個前綴或東西(user_submitted_questions例如)

這是一個「好」的方式做到這一點?或者我能做得更好/更有效率嗎?

回答

2

我不會重複整個問題。相反,請嘗試將status字段添加到Question對象。當問題進入Web應用程序時,它們可以保持提交狀態。一旦您查看它們,它們可以更新爲已批准或已拒絕。您可以對前端進行編碼,僅在公衆視圖中顯示status == APPROVED的問題。

這避免了維護2個問題表/對象的開銷(隨着系統的發展,現在只需要在添加/刪除字段時維護1個表/對象)。批准問題的表現也應該得到改善,因爲它只是更新單個字段而不是插入整個新行。如果您的表格增長過快,則始終可以構建清除或移動被拒絕問題的歸檔(或截斷)作業。

+0

+1。與我們的方法非常相似,並且使用status字段允許比「yes」「no」和null更多的選項。 – David

+0

所以我只是添加一個列到問題表(並更新實體),命名爲type..VARCHAR的示例狀態?然後我有機會設置不同的狀態。或者我應該使用其他數據類型,並且我理解它是正確的?謝謝=) – LuckyLuke

+0

是的,我會在問題中添加一列,但是我會讓它成爲一個字符串(VARCHAR),以便我可以捕獲多個狀態。現在你有3個:提交,批准,拒絕。可以想象,你會有更多的使用字符串減少重構的需要。在該對象中,可以使用Enum來確保沒有無效值持久化到狀態列中。 – Chris

1

假設你保存的問題和答案在數據庫中...

我們這樣做是在我們的系統中,只需有我們命名爲「認可」的數據庫可爲空欄位和相應的時間戳。問題進入時,該值最初爲空。

當它被批准或被拒絕時,我們適當地設置位標誌,並更新時間戳以顯示它何時被批准或拒絕。這比重複表格簡單得多。

相關問題