PHP开源应用的几类常见数据结构设计

浏览:1567 发布日期:2017/02/19 分类:职场感悟 关键字: PHP 开源 数据结构 CMS MALL
这一年多用TP3.2.3二次开发了小微OA,用TP5.0.6升级修改了twothink1.0的CMS,对常见的几个应用有些感触。
先说说几个经典的业务功能模块:
一是用户权限管理,一般指RBAC
二是审批流程管理,一般称workflow
三是购物车管理,一般指cart
四是文档发布管理,一般指CMS

当然还有Blog,BBS的应用,一般的数据结构特点是:有一个数据是主数据,然后在流转过程中产生相关状态的附加数据
例如:在博客中,发一个贴,然后有人不断地顶贴。贴主的贴是个主数据,而顶贴的帖子就是附加数据,主数据与附加数据往往是树型结构。
在审批管理中也是一样,而在文档发布管理中也是如此。
文档模型是文档的元数据,文档模型的定义包括两个主要信息:文档模型信息主表model,以及文档模型属性表attribute
通过模型属性表,可以对模型进行编辑管理。

一般的文章发布过程是这样的:
先是在文章表中写一条标题性数据,再在其扩展表中写入内容性数据。只所以有扩展表,主要是基于text型的数据需要单独存放在一个少字段的表中,性能更好。

但是在这之前,需要建立通用的文档模型,其定义要复杂些:
先是在模型管理中,向模型表model中写入一条主信息,然后再在属性表attribute中记录一下它的详细属性信息。定义完毕后,会执行sql脚本生成真正对应的数据库表。

在CMS中,模型的定义可不止用来定义一个文档模型,它可以定义任意类型的模型,其本质上是一个小型的数据库表定义工具。可以说,通过它可以扩展各种业务功能,如商品信息表等。
这让人想到在OA系统中常用到的报表自定义工具,和模型定义是一样的,都是数据库表的管理。

通过以上分析,我们可以得知:
这些应用都是元数据应用,状态机应用,树型数据的应用。
它们还能做哪些事情呢?如果采用文本数据库,又该是如何呢?如果元数据采用json这种描述能力强,又方便CRUD的会如何呢?
最佳答案
评论( 相关
后面还有条评论,点击查看>>