【问题标题】:User table database best practices用户表数据库最佳实践
【发布时间】:2012-06-05 04:07:25
【问题描述】:

我想知道组织用户数据的最佳做法是什么。

我应该将每行的所有用户数据存储在一个表中,还是应该将其分割成更小的块并使用多个通过主键关联的表?

例如。

首先,我想记录个人信息,例如姓名、职业、位置等。 最终,可以选择添加使用历史记录。比如他们填写了多少、哪些调查以及他们评论了哪些文章。

在键入此内容时,我觉得有一个用于 cmets 的表、一个用于用户名+密码的表、一个用于个人信息的表,并随着我的需求增长不断添加表...

希望得到一些确认。

【问题讨论】:

    标签: database database-design


    【解决方案1】:

    如果要建立一对多关系,那么您应该将其拆分,但对于一对一的事情,您不应该这样做。因此,如果用户将拥有多个地址、电话号码、历史记录、朋友等,那么您将拥有一个与客户 ID 相关联的地址表(或电话号码、历史记录或朋友表)。

    对于用户名和密码,您不需要单独的表格。

    【讨论】:

      【解决方案2】:

      最佳实践是优化您的数据库,或者您真的想首先组织用户数据,您必须使用一对多关系,因为您可以通过加入不同的表来轻松跟踪整个用户数据

      SELECT * FROM user_A a INNER JOIN userdata_B b ON a.id=b.a_id
      

      如果用户包含多个记录,例如名称 name2、occupation1、occupation2、location1、location2 等,那么您必须创建多个表并将此记录填充到这些表中,因为如果您将整个用户数据填充到单个表中,结果会花费很多执行时间

      在此之后应用索引......

      【讨论】:

      • 感谢您的回复。索引是我接下来要看的东西:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2014-02-06
      • 2018-11-19
      相关资源
      最近更新 更多