0
我即将为日志记录系统设计一个数据库。MySQL/JDBC中的动态ENUM
许多字符串列将具有有限的值,但未预先知道: 与发送消息的模块的名称或源主机名一样。
我想将它们存储为MySQL枚举以节省空间。 所以这个想法会是这个Enums会随着他们遇到新的价值而增长。
我会像一列开始:
host ENUM('localhost')
然后,在Java中,我将在同一时间启动时加载的主机名定义枚举值(我怎么做,与MySQL/JDBC? ?),并且每当遇到新主机时我都会修改Enum。
你认为这是可行/一个好主意? 你有没有做过这样的事情?
在此先感谢您的建议。
Raphael
我想过这个标准的解决方案,但它有两个缺点给我: 1)它需要在查询日志时连接很多表,这会影响性能。 2)当直接管理MySQL表时,ENUM是自描述的,而参考ID有点模糊。 – 2011-04-29 10:56:01
好的,谢谢... 我会这样做的“吻”的方式。 我想我只是想忘记早期的优化是Sofwtare发展中邪恶的根源。 – 2011-05-02 09:19:23