欢迎各位兄弟 发布技术文章

这里的技术是共享的

独立模型 文档模型

什么是独立模型

在模型管理部分,一个模型即对应一张表。独立模型就是独立的,不与其他表关联的一张数据表。
 

一般的CMS或者CMF都应该有模型这一块。现在我就onethink这个CMF来谈一下我的想法,由于我刚接触Onethink,所以可能理解不到他的精髓,希望大家批评指导,交流下。
onethink采用的是,所有信息都压在一个表里面,就是那个默认的文档模型,大家可以根据基础模型来扩展自己的需求。当然这样做的好处是方便全站搜索,但也无形中给这个文档表太大的压力,如果数据量比较大,这个表是扛不住的。

还有一种方法是分表,也正是我想采用的方法。

数据库一个model表,新建的模型就写入这个表,一个字段表fields,所有的字段信息都写入这个表,用模型ID来标示属于哪一个模型。
用户新建一个模型,就生成一个新表。
然后后台创建分类的时候,关联具体的模型。然后当你点击具体分类发飙信息的时候,弹出的表单就自动调用关联模型下面的所有字段。根据字段类型来生成表单。发表的信息当然就写入模型对应的表中。
这样感觉挺方便的,各个分类下面的表单都可以灵活控制。
也不会因为数据量很大带来压力。
其实这里面我谈的模型,他的主要作用就是新建数据表,自定义表的字段。从而实现表单的灵活性,也是分表的一个方法。
关于字段验证之类的,可以在模型上扩展

当然,这样做同样也会带来问题,比如,如果做全站搜索的时候会较麻烦,需要用到分词或其他插件来解决。

有这样的想法主要是觉得,ONETHINK的模型这块搞的比较混乱。或者说太高级了,没搞懂独立模型、文档模型。新建独立模型不能跟新建的分类关联。有点晕。
我只是想跟大家探讨下,不是乱喷,请大家赐教,说下自己的想法。
回复
野走 2014-12-22沙发
你好,再见
 
评论
usdt 2014-12-22板凳
高手,再见,请问你做的网站一般有多大的文章数量
 
评论
li1993hao 2014-12-27地板
onethink 内容那块文档模型采用的是继承方式即一条记录分散在两张表里,所有内容相关的模型都要从文档模型基础,独立模型就上不从文档模型基础,是一个独立的表.官方文档说的很清楚,这样做的好处是,便于管理,能实现各种独立模型不能实现或者实现很困难的操作,比如文档移动和合并等,而且便于全站检索。缺点就是你提到的所有文档模型及其继承者的数据记录都集中在一个表里.压力很大, 但到底文档数量到了什么数量级对性能造成多大的影响,这个可能要专门去验证下


来自 http://www.topthink.com/topic/4311.html

唯物品评历史

关注"唯物品评历史",跟着泪痕春雨先生,读懂历史,看彻人生

打开隐藏二维码