MySQL:在成员表列中存储结构化用户数据

时间:2015-11-21 06:56:13

标签: sql data-structures mysqli

我想在构建我正在创建的SQL数据库时提出一些建议。

UPDATE: Storing Data in MySQL as JSON似乎清楚地表明在MySQL中存储JSON并不是一个明智的选择。

我最初的想法是为每个名为' {user_id}'的用户创建一个表格。包含以下行:

  1. 日期时间
  2. 条目(一位数的int)
  3. 评论(合理短字符串)
  4. 活动(一个字)
  5. 但是,我已经知道为每个用户创建一个表是不可取的,因为从长远来看它无法管理。

    具体来说,我想知道如何将所有信息放在' {user_id}'用户排在我的'成员行中的表格表

    我有一些想法,但不知道它们有多好:

    • 将用户数据存储为附加列中的JSON对象(转换为字符串)'数据'这些'成员'表。从长远来看,这会变得难以管理(由于JSON对象字符串变得太长)?

    • 将用户数据存储在'成员的各个附加列中。表,可能是上面列出的每个参数(每个都是一个数组)

    • 将用户数据存储在'成员的各个附加列中。表,可能是上面列出的每个参数一个(每个参数都是字典或其他一些数据结构)

    有没有比JSON对象更好的方法或更好的数据存储类型?

    存储此信息的好方法是什么?当数组/词典变得非常大时,它们是否会随着时间的推移变得无法管理?

    (要记住的一件事是,数据'条目必须每日修改并轻松访问)

1 个答案:

答案 0 :(得分:1)

我认为你可能只想要一个额外的表,可能称为“活动”,外键“用户”指向“成员”表。 然后,对于您最初想到的每个用户表中的每一行,您在活动表中有一行,其中“user”的值是相关用户。由于每一行的有界大小相对较小,人们可以期望数据库能够很好地处理它,并且可以通过索引来解决效率问题。基本上我同意@MikeNakis