用户条目的数据库设计(使用mysql)

时间:2011-03-14 06:19:29

标签: mysql database

我的用户输入的主要数据是一个称为“活动”的对象,它由一些文本字段,一些字符串等组成。其中一个文本字段,称为“描述”,可以可能很长(比如很长的博文)。对于每个用户,我想将所有活动对象存储在mysql数据库中。

以下是我想到的一些解决方案:

  • 为每个用户的活动设置一个单独的mysql表,即activities_userX,X范围超过

  • 使用json将这些对象编码为字符串并将它们存储为主表中的列

  • 为所有这些活动对象设置一个单独的表,并将它们编入索引;那么对于主表中的每个用户,都有一个与他们的活动相对应的索引列表。

这些方法的优点/缺点是什么?更重要的是,我还能做些什么呢?

感谢。

1 个答案:

答案 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
相关问题