设计多态事件模式

时间:2016-12-25 11:16:09

标签: postgresql database-design

我正在我的应用程序中实现多态事件架构

会有很多类型的事件,每种类型与数据库中的其他表有不同的关系

我正在考虑像

这样的事情
- AppEvents(id, type, subtype, data::json)
- VisitorEvents(app_event_id, visitor_id)
- ConversationEvents(visitor_event_id, conversation_id, message_id, user_id)
- TrackingEvents(visitor_event_id)

其中AppEvent是与每个子类关联的基类。

我的问题是这个架构是否效率低,因为它可能需要相当多的连接,如果我想要所有与conversationvisitor相关联的事件。

我还希望事件表非常密集,并且必须索引每个外键,这可能会减慢插入速度。

AFAIK的替代方法是拥有一个AppEvent表,其中包含许多可以为空的关联列。

有什么建议吗?

0 个答案:

没有答案
相关问题