gpt4 book ai didi

python - django 中的动态数据库表

转载 作者:太空狗 更新时间:2023-10-29 22:19:15 26 4
gpt4 key购买 nike

我正在从事一个项目,该项目要求我为使用该用户的用户名在网站上注册的每个用户创建一个表。表中的列对于每个用户都是相同的。

在研究过程中我发现了这个 Django dynamic model fields .我不确定如何使用 django-mutant来完成这个。另外,有没有什么方法可以在不使用任何外部应用程序的情况下做到这一点?

PS : 我用的后台是Mysql

最佳答案

一个有趣的问题,可能会引起更广泛的兴趣。

为每个用户创建一张表是一场维护噩梦。您应该改为定义一个表来保存所有用户的数据,然后使用数据库的功能仅检索与感兴趣的用户有关的那些行(必要时检查权限后,因为给任何用户不受限制不是一个好主意在未设置特定权限的情况下访问其他用户的数据)。

采用您提出的解决方案需要您构建包含相关用户表名的 SQL 语句。对数据库的连续查询大多是不同的,这会减慢工作速度,因为每个 SQL 语句都必须“准备”(必须检查语法,必须验证表和列的名称,请求用户的许可访问指定资源必须经过授权,依此类推)。

通过使用单个表(模型),可以重复使用相同的查询,并使用参数来改变特定的数据值(在本例中为正在查找其数据的用户的名称)。您的数据库工作将进展得更快,您将只需要一个模型来描述所有用户的数据,数据库管理将不再是一场噩梦。

另一个优势是 Django(您似乎正在使用)具有广泛的基于用户的权限模型,并且可以轻松地用于验证用户登录(一旦您知道如何)。这些优势是如此引人注目,我希望你能放弃你的异端邪说并决定你可以摆脱单一表(并且,如果你计划使用标准的 Django 登录,与用户模型的关系是任何 Django 的核心部分项目)。

在您继续进行过程中,请随时提出更多问题。看来您是数据库工作的新手,因此我已尝试提供适当程度的详细信息。如果您无法获得知识渊博的建议,就会有很多这样的陷阱。 SO 上的人会帮助你。

关于python - django 中的动态数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com