【问题标题】:How do I store different profiles of users in a database?如何在数据库中存储不同的用户配置文件?
【发布时间】:2014-01-23 07:46:04
【问题描述】:

好的,这是一个非常基本的问题,但我找不到任何明确的答案。我们正在尝试做一个项目,其中每个用户都有一个配置文件,并且配置文件中的 5-6 个属性带有子属性。存储不同配置文件的最佳方式是什么?为每个用户创建表将导致数据库中有 10k 个表

【问题讨论】:

  • 使用主键为用户名和属性名的表。

标签: mysql sql django


【解决方案1】:

类似这样的:

CREATE TABLE profile (
    userid INT,
    attribute VARCHAR(20),
    value VARCHAR(100),
    PRIMARY KEY(userid, attribute)
);

【讨论】:

    【解决方案2】:

    创建 UserProfile 模型是 Django 中的recommended way。这只会在数据库中创建一个表。将为每个用户创建一行。例如

    from django.contrib.auth.models import User
    
    class UserProfile(models.Model):
        user = models.OneToOneField(User)
        favourite_num = models.Integer()
    

    这也应该非常节省空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2011-08-06
      • 2017-05-25
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 2014-12-08
      相关资源
      最近更新 更多