Java 在webapps中探索特定于用户的数据
我正忙于设计一个简单的待办事项列表webapp,用户可以通过该应用进行身份验证并保存待办事项列表项。用户还只能查看/编辑他们添加的待办事项列表项 这似乎是大多数web应用程序(或一般应用程序)中的一个通用功能(经过身份验证的用户只查看自己的数据) 对我来说,重要的是了解实现这一目标的不同选择。我想要实现的是一个能够有效处理大量用户数据的解决方案。目前,我正在使用关系数据库进行此操作,但noSQL答案对我也很有用 我想到了以下想法:Java 在webapps中探索特定于用户的数据,java,spring,database-design,web-applications,Java,Spring,Database Design,Web Applications,我正忙于设计一个简单的待办事项列表webapp,用户可以通过该应用进行身份验证并保存待办事项列表项。用户还只能查看/编辑他们添加的待办事项列表项 这似乎是大多数web应用程序(或一般应用程序)中的一个通用功能(经过身份验证的用户只查看自己的数据) 对我来说,重要的是了解实现这一目标的不同选择。我想要实现的是一个能够有效处理大量用户数据的解决方案。目前,我正在使用关系数据库进行此操作,但noSQL答案对我也很有用 我想到了以下想法: 每次需要此“功能”时添加一个用户id列。 添加关联数据的关联表(
所以问题是我的选择是否合适,是否有更好的技术来做到这一点?你的选择是很自然的事情 每个用户的表是非起始表(响应用户操作而修改数据库结构的任何内容通常都是可疑的) 行级安全性并不是webapps真正的选项,它要求每个用户会话都有一个单独的、持久的数据库连接,这几乎是不实际的。是的,它是特定于供应商的 索引表的方式完全取决于使用模式和要运行的查询类型。“为用户显示所有TODO”是您想要支持的查询吗(看起来是这样的)?然后,显然需要用户id上的索引
为什么用户id列对您来说似乎是错误的?如果要按用户限制访问,则需要能够识别记录所属的用户。实际上并不意味着每个表都需要它——例如,如果一条记录组成另一条记录(比如,您的TODO有“步骤”,每个步骤都属于一个TODO),只有对象图的根需要用户id。这并不是因为user\u id列错了,只是如果一条记录添加了更多需要此项的表,那么这看起来很麻烦。不过,只让对象图中的根包含用户id的想法是有用的。