一个表中字段种类太多咋办

很多种办法啊,首先有一些是可以集约化的,例如传统数据库里,你可以把水生、陆生这些能够局部化的指标独立出来。单独放到对应的特征表里。然后应用层根据你的分类字段去match进一步的特征该去哪个表读取。对于现代越来越复杂和丰富的数据模型,其实不必强求在数据层建立业务关系依赖,主外键关系和触发器这些应该沉到更下一层去设计和使用——仅仅用来保持数据存储的完整。或者如果是PostgreSQL,它9.3支持JSON,9.4支持JSONB,可以建立一个JSON字段,把这些弹性比较高的数据作为一个JSON格式的数据集保存进去,或者就简单的用hstore字典也行。其实有段时间我就是直接把JSON序列化以后存到一个大的varchar里(对于PG,TEXT字段就很好了),MySQL可以支持到8k长度的varchar,保存特征已经够用了。搜索用呢mysql我就不管了,PG的话JSONB可以直接用GIN索引就能达到不错的效果,就算没有JSONB的版本也可以用函数索引。Oracle和MSSQL这些年用的少,不过它们至少可以支持XML类型没错的,Oracle还有嵌套表,其实真要解决这些问题都不是个事儿。这些传统企业应用领域日进斗金的巨头,遇到过不知道多少比这个例子更复杂的建模需求了。
■网友
别用传统的关系型数据库呗
■网友
这种情况可以用一用elasticsearch这种搜索引擎,因为你要全字段索引,普通数据库的话,比较麻烦
■网友
这个与电商网站的商品属性管理差不多,可以参考相关开源程序


    推荐阅读