我有一个程序可以捕获许多不同类型的结构化消息。我需要将消息保存到数据库中。论坛对设计和性能的看法是:
(a)对所有消息类型使用一个大表,因此为了处理任何新的消息类型,将新列添加到大表中。因此,数据库是一个可能最终有100列的表。
(b)对每种消息类型使用一个表,因此对于新消息类型,将向数据库添加一个新表。
在性能方面,我指的是搜索所有消息(即搜索一个表与跨连接表进行搜索),以及开发工作(即开发人员之间的知识转移)和维护(即当出了问题时)。
这听起来有点像关于正常化的问题,但我不确定是否如此。
谢谢!
发布于 2014-08-01 16:34:43
如果我看得对,选择(a)就相当于所谓的“一个真查找表”(OTLT)。OTLT是一种反模式。你可以在网上研究。
性能下降,因为必须对两个字段(类型和代码)进行查找。对于每种类型都有单独的表,查找只是在代码上进行。
查询更复杂,因此更有可能出错。
如果您希望为每种类型分别使用条目表单,那么数据管理就会更加困难。如果您将只有一个真正类型的条目表单,则在输入新的查找值时需要小心。祝好运。
https://stackoverflow.com/questions/25079649
复制相似问题