gpt4 book ai didi

php - MYSQL:用户 - 配置文件详细信息表设置 - 最佳实践

转载 作者:IT老高 更新时间:2023-10-28 23:53:29 28 4
gpt4 key购买 nike

在您的普通用户表“user”(user_id/user_email/user_pwd/etc)旁边,存储个人资料信息的最佳方式是什么?

是否可以在用户表中添加字段,例如“user”

(user_id/user_email/user_pwd/user_firstname/user_lastname/user_views/etc)

或者创建另一个名为“profiles”的表

(profile_id/user_id/user_firstname/user_lastname/user_views/etc)

还是会选择一个包含属性定义的表和另一个表来存储这些值?

我知道最后一个是最灵活的,因为您可以轻松地添加和删除字段。但是对于一个大网站(5 万用户以上)这会很快吗?

最佳答案

您的方法需要考虑的事项

在用户表中存储用户配置文件

  • 这通常是获取配置文件数据的最快方法,尽管您可能在此处有大量冗余数据(其中可能没有任何信息的列)。
  • 快速(特别是如果您只从数据库中提取所需的列)
  • 浪费的数据
  • 更难使用/维护(可以说是使用 PHPMyAdmin 等接口(interface))

在 User_Profile 表 1-1 中存储用户配置文件与用户的关系

  • 连接应该仍然很快,如果不创建用户配置文件,除非用户填写一份,否则您可能会消除一些数据冗余。
  • 更易于使用
  • 由于加入(或第二次查询)而稍微慢了一点

将用户配置文件存储为表中的属性和值

*即存储可能选项的表,存储 user_id、option_id 和 value 的表*

  • 没有存储冗余数据,所有数据都是相关的
  • 最标准化的方法
  • 检索和更新数据的速度较慢

我的印象是大多数网站使用第二种方法并将个人资料信息存储在第二张表中,大多数大型网站通常都会对数据库(twitter、facebook)进行反规范化以实现更高的读取性能,但代价是写入速度较慢性能。

当您查看 50,000 条记录时,我认为将个人资料信息保存在第二个表中可能是可行的方法。为了获得最佳性能,您希望将大量写入的数据与大量读取的数据分开,以确保缓存能够有效工作。

关于php - MYSQL:用户 - 配置文件详细信息表设置 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889797/

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