【发布时间】:2014-08-01 11:51:41
【问题描述】:
我有一个程序可以捕获许多不同类型的结构化消息。我需要将消息持久化到数据库。论坛对设计和性能的看法是什么:
(a) 为所有消息类型使用一个大表,因此为了处理任何新的消息类型,新列被添加到大表中。所以数据库是一张可能有 100 列的表。
(b) 为每种消息类型使用一个表,因此对于新的消息类型,将一个新表添加到数据库中
我所说的性能是指搜索所有消息(即搜索一个表而不是搜索连接的表)以及开发工作(即开发人员之间的知识转移)和维护(即出现问题时)。
这听起来有点像规范化,但我不确定。
谢谢!
【问题讨论】:
-
您似乎在征求意见。如果你有两种不同的数据布局和一组你想做的查询和操作,那么这个问题就更合理了。
-
您应该考虑是否希望将消息从逻辑上分离到不同的表中,因为它们具有不同的结构;或者如果您希望出于性能考虑将消息物理地分离到同一个表中的不同分区中。
-
您的标签之一是关系数据库。这比您建议的任何一个都好。如果你不确定我为什么要说这样的话,我听说过这本书的好东西,数据库设计为凡人。
标签: mysql sql database-design relational-database database-schema