我正在编写我的第一个Web应用程序,而且我对数据库知之甚少,知道架构很重要但不足以知道如何编写好的架构。
是否有用于处理存储在每个用户帐户中的信息的标准协议?我的直觉是有一个表存储用户的密钥和登录信息,以及他们的表的句柄(可能是密钥?),然后为每个用户都有一个表。
但我想知道是否存在针对每个用户拥有表的性能问题,或者这似乎是一种令人难以置信的愚蠢方式。这似乎应该是一个“已解决的问题”,因为基本上所有的网络应用程序都有用户帐户,但我无法通过搜索找到任何东西。是否存在用于存储各种Web数据的“已解决”模式的资源?
答案 0 :(得分:11)
通常你不会为每个用户创建一个单独的表 - 这个解决方案不能很好地扩展。
相反,您通常会将所有用户的数据放入单个表(或每种数据类型一个表)中,并使用WHERE子句中的条件来确保用户只能读取/写入自己的数据。
答案 1 :(得分:4)
除非您的应用程序是非常自定义的,否则您将需要选择要使用的Web应用程序框架。对于简单的事情,最常见的框架工作得同样好(尽管有一些狂热的分歧)。我将假设你有一种编程语言,你觉得你是最强大的,所以我建议你让它成为你的Web框架的主要指南。按语言划分的一些常见框架(这甚至不是关闭到详尽的列表):
关于架构的问题,您可能需要查看database normalization。大多数框架已经有了处理用户创建和身份验证的工具,但一般来说,您永远不会想要为每个用户创建一个表。更常见的方法是创建一个名为users的表,它有一些id
作为主键,然后用作引用其他数据的外键。
答案 2 :(得分:0)
是的,绝对不是个好主意。你应该做的是熟悉一些Web应用程序框架,因为大多数/所有框架已经为你提供了这个。好的选择是例如Django。