2014-10-05 77 views
0

因此,所有编码忍者都在那里,我最终开始探索Web开发的世界(和它的真棒,我应该说)。我陷入困境。如何维护每个用户的数据?

我在做什么:我的HTML看起来像这样

<ul data-role="listview" > <!-- List items come here --> </ul>

这些列表项通过一个AJAX调用PHP函数(我正在考虑使用分页,因为动态生成UL中的数据可能会增长)。

到目前为止,我使用的是单个用户场景(一次只有一个用户访问该网站)。数据看起来对我很好。

问题现在我想增加用户的存在。许多用户同时登录。我会遇到的情况,如:

用户A:产生UL在DB当前情况下(说10行

用户B进入和命中刷新我的UL和飘!用户A将不再拥有他/她与工作数据集,现在他已经12行(DB表有2个刀片)

问题:请原谅我,如果我问一个愚蠢的问题。如何克服访问相同数据但不影响其他用户的多用户场景?

它会非常有益的,如果给定的可容易消化解决方案由像我这样的初学者:-)

编辑: 让我提供了一个例子:

用户A登录: 目前我有5行数据库像

  • 哈姆雷特
  • 麦克白
  • 布鲁特斯
  • 凯撒
  • 威廉

所以我UL会是这个样子:

<ul data-role="listview" id="authors"> 
    <li>Hamlet</li> 
    <li>Macbeth</li> 
    <li>Brutus</li> 
    <li>Caesar</li> 
    <li>William</li> 
</ul> 

现在用户B日志并且一直存在在DB额外插入

  • 哈姆雷特
  • 麦克白
  • 布鲁特斯
  • 凯撒
  • 威廉
  • 安东尼

所以我UL应该(仅适用于用户B,不适用于用户A)

<ul data-role="listview" id="authors"> 
    <li>Hamlet</li> 
    <li>Macbeth</li> 
    <li>Brutus</li> 
    <li>Caesar</li> 
    <li>William</li> 
    <li>Antonio</li> 
</ul> 
+0

它看起来更像是一个协议问题,而不是程序性问题。您应该说明在多个用户同时插入/删除/修改行时发生的情况,然后实施解决方案。此外,该协议将特定于您的域名。 – clapas 2014-10-05 11:51:14

+0

@clapas:它从数据库中唯一的选择操作。请检查我的编辑。提供了一个例子 – SilentCrusader 2014-10-05 12:42:13

+0

我已经明白你的意思了。那么问题是什么以及你想要解决方案是什么? – clapas 2014-10-05 12:47:10

回答

0

我最好的猜测:在你的表中添加一列与包含数据属于

用户ID然后选择从表中的数据,其中用户ID当前用户匹配请求数据数据

+--------+------+ +--------+---------+--------+ 
| UserID | Name | | ItemID | Content | UserID | 
+--------+------+ +--------+---------+--------+ 
| 1  | John | | 123 | Lorem.. | 2  | <-- This row belongs to Bill 
| 2  | Bill | | 124 | Lipsu.. | 1  | <-- This row belongs to John 
| 3  | etc. | +--------+---------+--------+ 
+--------+------+ 

-- This query would select data belonging to the user Bill 
SELECT `Content` FROM `yourdatatable` WHERE `UserID` = 2 
+0

我不认为这是可能的,对特定用户进行排位赛资格不会解决问题,因为任何用户在任何时候都会看到表格的最后一个快照,除非他点击刷新按钮。根据你的解决方案,用户1只会看到“124 | Lipsu ..”并且用户2会看到“123 | Lorem ..”(但理想情况下,用户2应该看到两个ItemID的即123,124,因为他要求最近的快照,而用户1是旧数据仍然可以)。在我错误的地方纠正错误! – SilentCrusader 2014-10-05 11:18:53

+0

另外,应用程序的数据库端并不在我手中(另一个团队管理它),并且要求他们进行任何数据库端修改并不是真的可能。 – SilentCrusader 2014-10-05 11:21:18