服务器数据库与xml相结合
数据库结构
顶层分类表 classification
Clas_id(自增,主键)
Clas_name(唯一键)
Xml字段结构和模板
<html id="" name="">
<classify>
<node></node>用于存放分类 id ,有多个说明有多个分类使用了它
<node></node>
</classify
<filepath1></filepath1>//后台模板文件路径
<filepath2></filepath2>//前台显示模板文件路径
<structure>
字段结构
</structure>
</html>
需要注意的是后台模板和前台显示模板的对应
数据表data
Data_id(自增,主键)
class_id
Data_title//文章标题
Data_filepath //数据 xml 文件的绝对路径
Data_html_filepath1//后台显示模板
Data_html_filepath2//前台显示模板
目录格式
Db/tableStructure/(1).xml Xml字段结构和模板
Db/data/($classid)/().xml md5()(题目标题 + 当前时间戳作为文件名称使其唯一)
Html/1/().html 后台模板 md5( 模板标题 ) 作为文件名称
Html/2/().html 前台显示模板 md5( 模板标题 ) 作为文件名称
数据的处理
文章管理
Insert()
1. 选择文章分类,选择该分类下选择相应的模板,加载模板,提交后(class_id,html_id)
2. 服务器处理
将文章标题、生成的文章数据xml 的路径、 class_id 、 (html_id=>filepath1 filepath2) 插入到服务器数据库
说明:html_id 是为了关联后台显示模板和前台显示模板
Delect()
1. 根据data_id 得到数据库中的 Data_filepath ,删除数据库中的这条记录
2. 删除Data_filepath 路径指定的 xml 文件
Select_one()
1. 根据data_id 得到数据库中的 Data_filepath 、 filepath2
2. 到Data_filepath 路径指定的 xml 文件数据,载入显示模板 filepath2
Select_all() //得到相应分类下的数据 id 和 title
1. 根据class_id, 从数据库服务器得到相应的 id 和 title
Update()id
1. 根据id 从数据库等到 data_filepath data_html_filepath1
2. 从data_filepath 得到数据,加载模板 data_html_filepath1
3. 更改后提交
4. 重写Data_filepath 文件
要局部更改的话会很麻烦
思路:
1. 加载数据Select_one ( id ),显示对应的更改基本模板
2. 当某一个输入框的数据改变时,在其value 值追加 _changed 后缀,这样就标示了那些数据时变化的了(这个可以同个 js 脚本实现)
3. 搜索xml 查询更改
分类管理
Insert()
输入分类名称,插入到数据库,选择合适的模板,将class_id 追加的模板的 <classify> 节点中
Delete()
1. 根据class_id 删除数据库数据,删除 xml 文件中模板中对应的 <node></node> 节点
是否级联删除该分类下的文章另说
Select()
1.从数据库中读取
Update() // 更新分类名称
1. 根据id ,想服务器数据库更新
模板管理
编辑模板
1. 模板id 从 xml 中得到 html_path1 html_path2 模板文件路径 和字段数据结构,更改后,可以选择覆盖原来的和生成新的
问题:模板文件和数据xml 文件关联了,若覆盖了那么会影响原来以它为模板发布的文章
添加模板
1. 添加字段数据结构
2. 将相相应的两个模板文件读入,生成模板文件,将两个模板模板文件路径 和字段数据结构追加到1.xml 中
删除模板
根据id 删除 xml 节点
查看模板
根据id 显示两个模板文件,和哪几个分类用到了它
显示所有模板的名称list
遍历xml 文件