我的用户输入的主要数据是一个称为“活动”的对象,它由一些文本字段,一些字符串等组成。其中一个文本字段,称为“描述”,可以可能很长(比如很长的博文)。对于每个用户,我想将所有活动对象存储在mysql数据库中。
以下是我想到的一些解决方案:
为每个用户的活动设置一个单独的mysql表,即activities_userX,X范围超过
使用json将这些对象编码为字符串并将它们存储为主表中的列
为所有这些活动对象设置一个单独的表,并将它们编入索引;那么对于主表中的每个用户,都有一个与他们的活动相对应的索引列表。
这些方法的优点/缺点是什么?更重要的是,我还能做些什么呢?
感谢。
答案 0 :(得分:1)
为每个用户的活动设置一个单独的mysql表,即activities_userX,X范围超过
每个用户的表格?这只是一个疯狂的数量表。
使用json将这些对象编码为字符串,并将它们存储为主表中的列
JSON是一种很好的传输语言。您有一个用于存储数据的数据库,使用它的功能。
为所有这些活动对象创建一个单独的表,并将它们编入索引;那么对于主表中的每个用户,都有一个与他们的活动相对应的索引列表。
越来越近了。
这种关系通常被称为“有很多”。在这种情况下“用户有很多活动”。
您应该有一个用户表和一个活动表。
活动表的一列应该是指向用户表主键的外键。
然后你就可以做到:
SELECT fields, i, want from activities WHERE userid=?
或者
SELECT users.foo, users.bar, activities.description from users,activities
WHERE user.userid=activities.userid