我正在为我制作的iOS应用制作一个Web应用程序。我想管理我所做的应用程序中的问题,但现在我还希望用户有机会向Web应用程序提交问题。但是,用户提出的问题不能仅仅添加到列表中,因为我想先批准它是一个有效的问题。
我想要做以下事情:
通过这种方法,我必须复制问题表(以及答案和类别表)并有一个前缀或其他东西(例如user_submitted_questions)
这是一种“好”的方式吗?或者我可以做得更好/更有效吗?
答案 0 :(得分:2)
我不会复制整个问题。相反,请尝试向Question对象添加status
字段。当问题进入Web应用程序时,它们可以保持为SUBMITTED状态。审核后,可以将其更新为“已批准”或“已拒绝”。您可以将前端编码为仅在公开视图中显示status == APPROVED
的问题。
这避免了维护2个问题表/对象的开销(随着系统的发展,现在您只需要在添加/删除字段时维护1个表/对象)。批准问题的性能也应该提高,因为它只是更新单个字段而不是插入一个全新的行。如果您的表增长太快,您始终可以构建一个清除或移动被拒绝问题的存档(或截断)作业。
答案 1 :(得分:1)
假设您将问题和答案保存在数据库中......
我们在我们的系统中通过在我们的数据库中名为“Approved”的可空位列和相应的时间戳来完成它。当问题进来时,该值最初为空。
在批准或拒绝时,我们会相应地设置位标记,并更新时间戳以显示批准或拒绝的时间。它比重复的表简单得多。