Database design 如何为用户建模&x27;数据库中的活动?

Database design 如何为用户建模&x27;数据库中的活动?,database-design,relational-database,Database Design,Relational Database,我想记录一些用户的活动类型, i、 用户登录,或发布新帖子 我在数据库中提出了两种方法: 1、创建活动表 activity_type [enum of activity type] meta_data 使用元数据存储指定活动的信息。 但我只能将元数据存储为对象的字符串,看起来 使用筛选器进行查询效率低下 2、为每种类型的活动创建一个表 # loginActivity time ip # publishActivity post_id user_id 这种方式的问题是,我是否想要一种新的活动类

我想记录一些用户的活动类型, i、 用户登录,或发布新帖子

我在数据库中提出了两种方法:

1、创建活动表

activity_type [enum of activity type]
meta_data
使用元数据存储指定活动的信息。 但我只能将元数据存储为对象的字符串,看起来 使用筛选器进行查询效率低下

2、为每种类型的活动创建一个表

# loginActivity
time
ip
# publishActivity
post_id
user_id
这种方式的问题是,我是否想要一种新的活动类型 要记录,应创建一个新表

哪种方式更适合这种情况?还是有更好的方法
如何做到这一点

Google重新堆栈溢出sql/数据库子类型/继承/多态性。还有多个表与一个表,以及EAV的优缺点。这些都是常见问题。PS有桌子有什么问题?这就是数据库的组成和DBMS管理的内容。@philipxy我在上找到了一个很好的例子。顺便说一句,拥有表并没有错,但当解决方案是创建太多表时,我怀疑这是一个愚蠢的解决方案,因为我在数据库设计方面没有太多经验:(