《跟我一起做J2EE版Blog–jPress》2(数据库和ER图)
Blog项目的需求很清晰,现存的WordPress就是很好的参照,项目的初始阶段数据库的ER图设计如下:
本来打算引入twitter表做站内微博的,用户可以用140字简单的文本更新一下状态。后来打算将这个做成插件引入诸如人人,QQ,新浪微博的状态进行同步显示,故而没有必要在站内设计表来存储。项目会使用Hibernate负责数据库层,所以数据结构的设计伸缩性比较大,即使项目设计过程中发生业务需求的改变导致表结构需要调整,因为引入了Hibernate整个项目的数据依赖性降低,所产生的代码级的影响也是可控的。
站点元素,比如博客名,博客地址,博客logo,博客分页大小,博客主题等一些信息存放在jp_options中,将来使用servlet listener监听器进行启动时加载一些必要的信息,将这些信息存放入application对象中,以供缓存,如果管理员更新这部分信息,对数据库更 改的同时需要手动对application中的元素进行修改。这些需要启动时加载的元素,标记为auto_load,是一个bit类型的数据项,对 JAVA来说是一个boolean。
本来打算引入twitter表做站内微博的,用户可以用140字简单的文本更新一下状态。后来打算将这个做成插件引入诸如人人,QQ,新浪微博的状态进行同步显示,故而没有必要在站内设计表来存储。项目会使用Hibernate负责数据库层,所以数据结构的设计伸缩性比较大,即使项目设计过程中发生业务需求的改变导致表结构需要调整,因为引入了Hibernate整个项目的数据依赖性降低,所产生的代码级的影响也是可控的。
jp_user | 用户表 | |
id | bigint(20) | ID |
username | varchar(50) | 帐号 |
nickname | varchar(50) | 昵称 |
password | varchar(50) | 密码 |
varchar(50) | 邮箱 | |
register_dt | datetime | 注册时间 |
user_url | varchar(50) | 个人网站 |
user_level | int(11) | 用户权限:10最高,1最低。将来用spring security做用户权限管理 |
jp_usermeta | 用户元素表 | 用来存储用户的一些其他配置信息,留作扩展 |
id | bigint(20) | ID |
user_id | bigint(20) | 外键 |
user_key | varchar(255) | key |
user_value | text | value |
jp_tags | 标签库 | |
id | bigint(20) | ID |
name | varchar(100) | 标签名字 |
count | bigint(20) | 该标签文章数 |
jp_category | 分类库 | |
id | bigint(20) | ID |
name | varchar(100) | 分类名 |
description | varchar(255) | 描述 |
father_id | bigint(20) | 父分类ID |
count | bigint(20) | 该分类文章数 |
jp_entry_tags | 文章标签多对多中间表 | |
entry_id | bigint(20) | |
tags_id | bigint(20) | |
jp_entry_category | 文章标签多对多中间表 | |
entry_id | bigint(20) | |
category_id | bigint(20) | |
jp_entry | 文章表 | |
id | bigint(20) | ID |
title | varchar(100) | 标题 |
author | bigint(20) | 作者 |
create_dt | datetime | 创建时间 |
complite_dt | datetime | 最后修改时间 |
summary | varchar(2048) | 摘要 |
content | text | 内容 |
status | varchar(20) | 状态(publish,draft) |
type | varchar(20) | 类型(post,page) |
father_id | bigint(20) | 如果类型为page,可供选择父page |
views | bigint(20) | 点击量 |
jp_comments | 访客留言 | |
id | bigint(20) | ID |
author_name | varchar(50) | 用户名 |
author_site | varchar(255) | 用户网址 |
author_email | varchar(255) | 用户电邮 |
content | text | 内容 |
create_dt | datetime | 留言时间 |
post_ip | varchar(20) | 留言ip |
father_id | bigint(20) | 可供选择,可回复留言,父留言记录 |
entry_id | bigint(20) | 所属文章 |
jp_options | 站点元素 | |
id | bigint(20) | ID |
key | varchar(64) | key |
value | text | value |
auto_load | bit | 是否在WEB容器启动时加载进缓存 |
jp_links | 外链 | |
id | bigint(20) | ID |
title | varchar(50) | 标题 |
url | varchar(255) | url地址,以http,https开头 |
img_url | varchar(255) | 可附加外链图标 |
order | int(11) | 外链序列排序 |
type | varchar(20) | 类型,可选siderbar或者footer |
posted on 2012-03-11 21:35 newflypig 阅读(1049) 评论(0) 编辑 收藏 举报