日期:2014-05-16 浏览次数:20635 次
作者:杨鑫奇
?
?
最近项目开发过程中,遇到数据库设计方面的问题,参考了多个数据库,总结了一些相关的数据库实体及关系的表示 3月份的时候也写过一篇MySQL数据库设计复习笔记及项目实战?,现在再次进行总结,并添加了在项目中的数据库设计及具体的持久化及cache实现.
数据库作为底层,命名规范和变动都会直接影响到上层,所以在设计上更需要谨慎.
本文从 数据库实体及关系处理,数据持久化及缓存处理,这3个方面来进行阐述
先看下大图,点击查看大图 本次 我是买家 开源项目设计软件 采用的是 MySQL Workbench
?
?
?
?
筛选实体,从图中我们可以看到,图中主要分成了6个部分
实体表 goods 商品 communicate 群 say? 我说 comment 评论 url? 站点 brand 品牌 compaign 活动 |
用户表user |
关系表 userandmodel ?用户模型关系 modelandmodel 模型模型关系 aactionandmodel 页面实体关系 tags? TAG实体关系 |
资源表 image 图片 album 相册 |
群组表 group 小组 topic? 话题 post?? 回复 userandgroup? 用户群组关联 ? ? |
站点常用表 systemtree 系统树 content 内容 ad 广告 report 举报 district 地区 log 日志 services 客服人员 mail 站内信 |
?
以用户为中心,user表放在中间,关联其他的实体
实体表 可以进行扩展 添加相关的应用实体
关系表? 主要包含4个表
用户和模型关联表 比如: 张三 喜欢 IPOD?? 李四 想买 IPOD?linktype="like/buy"??
模型模型关联表? 比如商品评论关联?modela 商品?modelb 评论??
actionandmodel 页面模型关联表? tag关键字及实体关联表
资源表? 主要包含了 image ablum? image表包含了系统实体类关联的图片
群组表? 包含了group,topic,post userandgroup ,群组作为系统独立模块独立出来
常用表? 常有表从实体表中分离出来,放站点需要的表
?
数据持久化
THINKPHP处理数据机制简单的说,直接实例化model类得到model示例即可进行数据库语句的相关操作,如下图所示
?
DbMysql 继承自Db,? AdvModel,ViewModel,RelationModel继承自Model类,Model类调用DB类进行具体的数据库操作
比如查询所有用户操作
?
$user = newModel( 'User' );
$result = $user ->select();
var_dump( $result ); //输出所有的用户
|
?
比如添加用户操作
?
//接收POST过来的表单数据,创建数据 if ( $user ->cr
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|