一般的CMS或者CMF都应该有模型这一块。现在我就onethink这个CMF来谈一下我的想法,由于我刚接触Onethink,所以可能理解不到他的精髓,希望大家批评指导,交流下。
onethink采用的是,所有信息都压在一个表里面,就是那个默认的文档模型,大家可以根据基础模型来扩展自己的需求。当然这样做的好处是方便全站搜索,但也无形中给这个文档表太大的压力,如果数据量比较大,这个表是扛不住的。
还有一种方法是分表,也正是我想采用的方法。
数据库一个model表,新建的模型就写入这个表,一个字段表fields,所有的字段信息都写入这个表,用模型ID来标示属于哪一个模型。
用户新建一个模型,就生成一个新表。
然后后台创建分类的时候,关联具体的模型。然后当你点击具体分类发飙信息的时候,弹出的表单就自动调用关联模型下面的所有字段。根据字段类型来生成表单。发表的信息当然就写入模型对应的表中。
这样感觉挺方便的,各个分类下面的表单都可以灵活控制。
也不会因为数据量很大带来压力。
其实这里面我谈的模型,他的主要作用就是新建数据表,自定义表的字段。从而实现表单的灵活性,也是分表的一个方法。
关于字段验证之类的,可以在模型上扩展
当然,这样做同样也会带来问题,比如,如果做全站搜索的时候会较麻烦,需要用到分词或其他插件来解决。
有这样的想法主要是觉得,ONETHINK的模型这块搞的比较混乱。或者说太高级了,没搞懂独立模型、文档模型。新建独立模型不能跟新建的分类关联。有点晕。
我只是想跟大家探讨下,不是乱喷,请大家赐教,说下自己的想法。