对于我的网站,我有一个用户列表和一系列事件。我将为每个活动分配用户。我有一个名为EventUsers的表来保存这些数据:
------------------------
EventUsers
------------------------
EventID | UserID
------------------------
1 | 123
1 | 456
2 | 789
在我的页面上,我希望能够为特定事件添加和删除用户。
我可以在用户旁边填入一个下拉列表,旁边有一个“添加”按钮,然后当我想添加一个用户时,我选择一个并单击“添加”。它下面会有一个网格,显示事件的所有用户,每个用户都有“删除”按钮。这样做的缺点是每次添加和删除都会进行数据库调用。
另一种选择是在页面上有两个列表框 - 一个在左边包含数据库中的所有用户,另一个在右边包含给定事件的用户,我可以在列表中添加或删除正确的。然后,当我完成后,我单击“保存”,然后进行一次数据库调用。唯一的问题是,如果我要删除并添加,我将不得不删除EventUsers表中该事件的每条记录,然后添加更改。
我之前遇到过这个问题,而且我总是选择下拉法。这里首选的方法是什么?
答案 0 :(得分:1)
两者都不完美。在这些情况下,最好进行一些用户测试,并担心以后的技术实现;)
从用户旅程的角度来看,如果我在活动中添加了很多用户,我希望它很快,而不是每次操作都有回发。
答案 1 :(得分:0)
对我来说,听起来你对第一个解决方案中的数据库命中率有点过分担心。在我看来,插入或删除该表中的一条小记录实际上是微不足道的。即使在一个大型网站上,数据库命中也不会真正重要,除非你的某个地方有一个聚集索引可能会减慢速度。
如果您不喜欢数据库命中(再次,我认为这些是边缘的),并且您不喜欢删除/重新添加记录,您可以考虑将更改存储在会话中而不是将其保留到单击“保存”按钮。这需要您的最终用户采取更多行动,因此,这可能不是最好的主意。
答案 2 :(得分:0)
无论哪种方式都应该有效,但听起来你选择使用右侧列表添加/删除项目的第二种方法就是你要做的事情,因为你已经完成了这项工作并且该技术在很多其他情况下使用所以很熟悉用户。