【问题标题】:Adding fields to table dynamically in django在 django 中动态向表中添加字段
【发布时间】:2023-03-24 09:11:01
【问题描述】:

在阅读了有关数据库设计的信息后,我决定为所有用户使用一个表。

  • 我的问题是如何为新用户创建字段以将他们的数据添加到其中?
  • 还有什么好的方法可以检索每个用户的特定数据?

感谢您对此主题的任何建议。

【问题讨论】:

    标签: mysql django database database-design django-models


    【解决方案1】:

    由于您使用的是 Django,我建议您阅读 Django 文档和/或他们的入门教程 - 他们在他们的网站上提供了非常容易遵循的指南。他们指南的第 2 部分可能是您正在寻找的内容 (https://docs.djangoproject.com/en/2.0/intro/tutorial02/),但我将从第 1 部分 (https://docs.djangoproject.com/en/2.0/intro/tutorial01/) 开始阅读 - 它们不是很长。

    Django 提供类似于其他 ORM 框架的 ORM 功能。 所以为了自动生成表格,您需要首先在 Django 文件中定义所谓的“模型”,这些文件直接映射到 MySQL 数据库中的表格。在您的情况下,您将定义一个名为“用户”的模型。

    定义模型后,您可以使用 python CLI “makemigrations” 命令为用户模型自动生成相关的迁移文件。迁移是帮助 Django 在数据库中创建关联表的中间文件。

    至于从数据库中检索数据(特定于每个用户),您必须在 Django 中编写一组端点,这些端点将自动在您的数据库上运行适当的 SQL 命令并返回找到的数据。例如,您可能有一个名为 getAllUsers 的端点,该端点将映射到一个 python (Django) 函数,该函数将从 users 表中检索所有用户数据并将其返回。

    Django 文档解释了如何查询您的数据库。看看这个页面:https://docs.djangoproject.com/en/2.0/topics/db/queries/

    希望对你有所帮助!

    【讨论】:

    • 感谢您的解释,我忘了提到我已经有一个数据库并且按照您所说的方式获取表格没有问题,我正在寻找的是重组我的数据库,以便所有用户都会被添加到一个表中,所以它们必须动态添加。我正在寻找一种方法,可以将该表中的每个用户特定数据与其他用户分开,这样我就可以使用查询获取用户数据。
    • 嗯,我不确定我是否理解您所描述的问题。如果您有一个用户表,则该表中将有多个列。例如,您可能有“firstname”、“lastname”、“username”、“password”、“dateofbirth”等。每次向该表添加新用户时,您将提供用户的名字、姓氏、用户名、密码和出生日期。这样,在表中,每个存在的用户都会有一行(每行都包含这五条信息)。这是你目前的设置吗?如果是这样,您能否说明您要完成的工作?
    • 当然,目前我有一个模型,每个用户有 40 个字段,所以如果我有 100 个用户,我就有 100 个模型。我想要做的是将所有用户添加到一个表中。现在这样我如何动态地(当服务器运行时)将字段(用户)添加到那个表中。另外,如果我想使用该表中的查询获取用户数据,我如何知道哪些字段属于哪个用户。不过,这种方法已经被各行各业使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多